home *** CD-ROM | disk | FTP | other *** search
/ Gigarom 4 / Mac Giga-ROM 4.0 - 1993.toast / FILES / DEM / A-C / Accuracy / Accuracy.pas < prev    next >
MacBinary  |  1988-05-23  |  15.9 KB  |  [TEXT/TPAS]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert TheDraw Pascal screen Image (image/theDrawPascalScreenImage) ext Unsupported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon May 23 16:38:54 1988, modified Mon May 23 16:38:54 1988, creator 'TPAS', type ASCII, 15546 bytes "Accuracy.pas" , at 0x3d3a 408 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[TPAS]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0c 41 63 63 75 72 61 | 63 79 2e 70 61 73 00 00 |..Accura|cy.pas..|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 54 50 41 | 53 01 00 00 00 00 00 00 |.TEXTTPA|S.......|
|00000050| 00 00 00 00 00 3c ba 00 | 00 01 98 9e be 3e 5e 9e |.....<..|.....>^.|
|00000060| be 3e 5e 00 00 08 00 00 | 00 00 00 00 00 00 00 00 |.>^.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 75 43 00 00 |........|....uC..|
|00000080| 7b 20 41 43 43 55 52 41 | 43 59 2e 50 41 53 3a 20 |{ ACCURA|CY.PAS: |
|00000090| 38 30 38 37 20 6d 61 74 | 68 20 61 63 63 75 72 61 |8087 mat|h accura|
|000000a0| 63 79 20 74 65 73 74 2c | 20 76 20 31 2e 37 2c 20 |cy test,| v 1.7, |
|000000b0| 4f 63 74 20 31 39 38 37 | 0d 20 20 20 20 28 63 29 |Oct 1987|. (c)|
|000000c0| 20 31 39 38 37 2c 20 50 | 43 20 54 65 63 68 20 4a | 1987, P|C Tech J|
|000000d0| 6f 75 72 6e 61 6c 20 61 | 6e 64 20 5a 69 66 66 20 |ournal a|nd Ziff |
|000000e0| 43 6f 6d 6d 75 6e 69 63 | 61 74 69 6f 6e 73 20 43 |Communic|ations C|
|000000f0| 6f 2e 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |o.. | |
|00000100| 20 20 20 20 20 20 20 77 | 72 69 74 74 65 6e 20 62 | w|ritten b|
|00000110| 79 20 4a 69 6d 20 52 6f | 62 65 72 74 73 2e 0d 0d |y Jim Ro|berts...|
|00000120| 55 6e 63 6f 6d 6d 65 6e | 74 20 74 68 65 20 63 6f |Uncommen|t the co|
|00000130| 72 72 65 63 74 20 63 6f | 6e 73 74 61 6e 74 20 64 |rrect co|nstant d|
|00000140| 65 63 6c 61 72 61 74 69 | 6f 6e 73 20 66 6f 72 20 |eclarati|ons for |
|00000150| 79 6f 75 72 20 63 6f 6d | 70 69 6c 65 72 2e 0d 49 |your com|piler..I|
|00000160| 6e 73 65 72 74 20 63 6f | 72 72 65 63 74 20 76 65 |nsert co|rrect ve|
|00000170| 72 73 69 6f 6e 20 6e 75 | 6d 62 65 72 20 69 6e 20 |rsion nu|mber in |
|00000180| 60 63 6f 6d 70 69 6c 27 | 20 76 61 72 69 61 62 6c |`compil'| variabl|
|00000190| 65 2c 0d 6e 61 6d 65 20 | 6f 66 20 68 61 72 64 77 |e,.name |of hardw|
|000001a0| 61 72 65 20 73 79 73 74 | 65 6d 20 26 20 6d 61 74 |are syst|em & mat|
|000001b0| 68 20 63 6f 70 72 6f 63 | 65 73 73 6f 72 20 69 6e |h coproc|essor in|
|000001c0| 20 60 6d 61 63 68 69 6e | 27 20 76 61 72 69 61 62 | `machin|' variab|
|000001d0| 6c 65 2e 0d 0d 7d 0d 7b | 20 24 4d 43 36 38 30 32 |le...}.{| $MC6802|
|000001e0| 30 2b 7d 0d 7b 20 24 4d | 43 36 38 38 38 31 2b 7d |0+}.{ $M|C68881+}|
|000001f0| 0d 7b 24 52 2b 7d 0d 7b | 24 55 2d 7d 0d 0d 70 72 |.{$R+}.{|$U-}..pr|
|00000200| 6f 67 72 61 6d 20 41 43 | 43 55 52 41 43 59 32 3b |ogram AC|CURACY2;|
|00000210| 0d 0d 0d 55 53 45 53 20 | 0d 20 20 20 0d 20 20 20 |...USES |. . |
|00000220| 20 20 20 4d 65 6d 74 79 | 70 65 73 2c 20 51 75 69 | Memty|pes, Qui|
|00000230| 63 6b 44 72 61 77 2c 20 | 4f 53 49 6e 74 66 2c 20 |ckDraw, |OSIntf, |
|00000240| 54 6f 6f 6c 49 6e 74 66 | 2c 20 50 61 63 6b 49 6e |ToolIntf|, PackIn|
|00000250| 74 66 2c 20 53 41 4e 45 | 2c 20 4d 61 63 45 78 74 |tf, SANE|, MacExt|
|00000260| 72 61 73 3b 0d 0d 54 59 | 50 45 0d 20 20 20 61 63 |ras;..TY|PE. ac|
|00000270| 63 61 72 72 61 79 20 20 | 3d 20 20 61 72 72 61 79 |carray |= array|
|00000280| 5b 31 2e 2e 35 5d 20 6f | 66 20 65 78 74 65 6e 64 |[1..5] o|f extend|
|00000290| 65 64 20 3b 0d 20 20 20 | 0d 0d 43 4f 4e 53 54 0d |ed ;. |..CONST.|
|000002a0| 20 20 20 63 6f 6d 70 69 | 6c 20 20 20 3d 20 20 27 | compi|l = '|
|000002b0| 4d 61 63 69 6e 74 6f 73 | 68 20 54 75 72 62 6f 20 |Macintos|h Turbo |
|000002c0| 50 61 73 63 61 6c 27 20 | 3b 0d 20 20 20 6d 61 63 |Pascal' |;. mac|
|000002d0| 68 69 6e 20 20 20 3d 20 | 20 27 4d 61 63 69 6e 74 |hin = | 'Macint|
|000002e0| 6f 73 68 20 49 49 27 20 | 20 3b 0d 20 20 20 6d 69 |osh II' | ;. mi|
|000002f0| 6e 65 72 72 20 20 20 3d | 20 20 31 2e 30 45 2d 31 |nerr =| 1.0E-1|
|00000300| 37 20 3b 0d 20 20 20 6c | 6f 67 6d 69 6e 20 20 20 |7 ;. l|ogmin |
|00000310| 3d 20 20 31 37 2e 30 20 | 3b 0d 20 20 20 6e 20 20 |= 17.0 |;. n |
|00000320| 20 20 20 20 20 20 3d 20 | 20 31 30 20 3b 0d 20 20 | = | 10 ;. |
|00000330| 20 79 20 20 20 20 20 20 | 20 20 3d 20 20 31 2e 30 | y | = 1.0|
|00000340| 20 3b 0d 20 20 20 73 74 | 65 70 20 20 20 20 20 3d | ;. st|ep =|
|00000350| 20 20 30 2e 32 20 3b 0d | 20 20 20 69 74 65 72 20 | 0.2 ;.| iter |
|00000360| 20 20 20 20 3d 20 20 32 | 30 20 3b 0d 20 20 20 69 | = 2|0 ;. i|
|00000370| 74 65 72 74 72 69 67 20 | 3d 20 20 35 20 3b 0d 20 |tertrig |= 5 ;. |
|00000380| 20 20 6c 6f 67 31 30 65 | 20 20 20 3d 20 20 30 2e | log10e| = 0.|
|00000390| 34 33 34 32 39 34 34 38 | 31 39 30 33 32 35 31 38 |43429448|19032518|
|000003a0| 32 37 36 35 20 3b 0d 20 | 20 20 70 69 20 20 20 20 |2765 ;. | pi |
|000003b0| 20 20 20 3d 20 20 33 2e | 31 34 31 35 39 32 36 35 | = 3.|14159265|
|000003c0| 33 35 38 39 37 39 33 32 | 33 38 34 36 20 3b 0d 20 |35897932|3846 ;. |
|000003d0| 20 20 70 69 4f 32 20 20 | 20 20 20 3d 20 20 31 2e | piO2 | = 1.|
|000003e0| 35 37 30 37 39 36 33 32 | 36 37 39 34 38 39 36 36 |57079632|67948966|
|000003f0| 31 39 32 33 20 3b 0d 20 | 20 20 72 6f 6f 74 32 20 |1923 ;. | root2 |
|00000400| 20 20 20 3d 20 20 31 2e | 34 31 34 32 31 33 35 36 | = 1.|41421356|
|00000410| 32 33 37 33 30 39 35 30 | 34 38 38 20 3b 0d 20 20 |23730950|488 ;. |
|00000420| 20 72 6f 6f 74 33 20 20 | 20 20 3d 20 20 31 2e 37 | root3 | = 1.7|
|00000430| 33 32 30 35 30 38 30 37 | 35 36 38 38 37 37 32 39 |32050807|56887729|
|00000440| 33 35 20 3b 0d 20 20 20 | 73 71 72 74 4f 32 20 20 |35 ;. |sqrtO2 |
|00000450| 20 3d 20 20 30 2e 37 30 | 37 31 30 36 37 38 31 31 | = 0.70|71067811|
|00000460| 38 36 35 34 37 35 32 34 | 34 20 3b 0d 0d 56 41 52 |86547524|4 ;..VAR|
|00000470| 0d 20 20 20 69 2c 20 6a | 2c 20 6b 2c 20 6c 2c 20 |. i, j|, k, l, |
|00000480| 6d 2c 20 6e 74 65 73 74 | 2c 7a 20 20 20 20 20 20 |m, ntest|,z |
|00000490| 3a 20 69 6e 74 65 67 65 | 72 20 3b 0d 20 20 20 61 |: intege|r ;. a|
|000004a0| 2c 62 2c 63 20 20 20 20 | 20 20 20 20 20 20 20 20 |,b,c | |
|000004b0| 20 20 20 20 20 20 20 20 | 20 20 20 3a 20 61 72 72 | | : arr|
|000004c0| 61 79 5b 31 2e 2e 4e 2c | 31 2e 2e 4e 5d 20 6f 66 |ay[1..N,|1..N] of|
|000004d0| 20 65 78 74 65 6e 64 65 | 64 3b 0d 20 20 20 73 75 | extende|d;. su|
|000004e0| 6d 2c 20 58 20 20 20 20 | 20 20 20 20 20 20 20 20 |m, X | |
|000004f0| 20 20 20 20 20 20 20 20 | 20 20 3a 20 65 78 74 65 | | : exte|
|00000500| 6e 64 65 64 20 3b 0d 20 | 20 20 78 78 2c 20 7a 7a |nded ;. | xx, zz|
|00000510| 2c 20 71 75 6f 74 20 20 | 20 20 20 20 20 20 20 20 |, quot | |
|00000520| 20 20 20 20 20 20 3a 20 | 65 78 74 65 6e 64 65 64 | : |extended|
|00000530| 20 3b 0d 20 20 20 61 30 | 2c 20 61 31 2c 20 64 30 | ;. a0|, a1, d0|
|00000540| 2c 20 64 31 2c 20 66 72 | 61 63 20 20 20 20 20 20 |, d1, fr|ac |
|00000550| 20 20 3a 20 65 78 74 65 | 6e 64 65 64 20 3b 0d 20 | : exte|nded ;. |
|00000560| 20 20 70 2c 20 70 32 20 | 20 20 20 20 20 20 20 20 | p, p2 | |
|00000570| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a 20 | | : |
|00000580| 65 78 74 65 6e 64 65 64 | 20 3b 0d 20 20 20 74 68 |extended| ;. th|
|00000590| 2c 20 65 72 72 2c 20 6c | 6f 67 65 72 72 2c 20 64 |, err, l|ogerr, d|
|000005a0| 69 76 65 72 72 2c 0d 20 | 20 20 20 20 76 61 6c 2c |iverr,. | val,|
|000005b0| 20 66 75 6e 63 74 20 20 | 20 20 20 20 20 20 20 20 | funct | |
|000005c0| 20 20 20 20 20 20 3a 20 | 61 63 63 61 72 72 61 79 | : |accarray|
|000005d0| 20 3b 0d 20 20 20 74 65 | 73 74 65 72 72 20 20 20 | ;. te|sterr |
|000005e0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005f0| 20 20 3a 20 61 72 72 61 | 79 5b 31 2e 2e 31 30 5d | : arra|y[1..10]|
|00000600| 20 6f 66 20 65 78 74 65 | 6e 64 65 64 20 3b 0d 20 | of exte|nded ;. |
|00000610| 20 20 74 6f 74 65 72 72 | 20 20 20 20 20 20 20 20 | toterr| |
|00000620| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 3a 20 | | : |
|00000630| 65 78 74 65 6e 64 65 64 | 20 3b 0d 20 20 20 64 6f |extended| ;. do|
|00000640| 6e 65 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ne | |
|00000650| 20 20 20 20 20 20 20 20 | 20 20 3a 20 42 6f 6f 6c | | : Bool|
|00000660| 65 61 6e 3b 0d 20 20 20 | 73 20 20 20 20 20 20 20 |ean;. |s |
|00000670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000680| 20 20 20 20 3a 20 44 65 | 63 53 74 72 3b 0d 20 20 | : De|cStr;. |
|00000690| 20 74 65 78 74 57 69 64 | 74 68 20 20 20 20 20 20 | textWid|th |
|000006a0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 3a 20 49 | | : I|
|000006b0| 4e 54 45 47 45 52 3b 20 | 20 20 20 20 7b 20 4d 61 |NTEGER; | { Ma|
|000006c0| 78 69 6d 75 6d 20 77 69 | 64 74 68 20 6f 66 20 61 |ximum wi|dth of a|
|000006d0| 20 63 68 61 72 61 63 74 | 65 72 20 7d 0d 20 20 20 | charact|er }. |
|000006e0| 74 65 78 74 48 65 69 67 | 68 74 20 20 20 20 20 20 |textHeig|ht |
|000006f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 3a 20 49 4e | | : IN|
|00000700| 54 45 47 45 52 3b 20 20 | 20 20 20 7b 20 48 65 69 |TEGER; | { Hei|
|00000710| 67 68 74 20 6f 66 20 61 | 20 63 68 61 72 61 63 74 |ght of a| charact|
|00000720| 65 72 20 7d 0d 20 20 20 | 66 20 20 20 20 20 20 20 |er }. |f |
|00000730| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000740| 20 20 20 20 3a 20 44 65 | 63 46 6f 72 6d 3b 0d 0d | : De|cForm;..|
|00000750| 0d 0d 50 52 4f 43 45 44 | 55 52 45 20 44 72 61 77 |..PROCED|URE Draw|
|00000760| 41 74 28 20 78 2c 20 79 | 20 3a 20 49 4e 54 45 47 |At( x, y| : INTEG|
|00000770| 45 52 3b 20 73 20 3a 20 | 53 74 72 32 35 35 20 29 |ER; s : |Str255 )|
|00000780| 3b 0d 0d 20 20 20 7b 20 | 44 72 61 77 20 73 74 72 |;.. { |Draw str|
|00000790| 69 6e 67 20 61 74 20 74 | 68 69 73 20 63 6f 6f 72 |ing at t|his coor|
|000007a0| 64 69 6e 61 74 65 2c 20 | 73 69 6d 69 6c 61 72 20 |dinate, |similar |
|000007b0| 74 6f 20 61 6e 20 78 2c | 79 20 6c 6f 63 61 74 69 |to an x,|y locati|
|000007c0| 6f 6e 20 7d 0d 20 20 20 | 7b 20 6f 6e 20 61 20 63 |on }. |{ on a c|
|000007d0| 6f 6e 76 65 6e 74 69 6f | 6e 61 6c 20 63 6f 6d 70 |onventio|nal comp|
|000007e0| 75 74 65 72 20 74 65 72 | 6d 69 6e 61 6c 2e 20 7d |uter ter|minal. }|
|000007f0| 0d 0d 20 20 20 20 20 20 | 43 4f 4e 53 54 0d 20 20 |.. |CONST. |
|00000800| 20 20 20 20 0d 20 20 20 | 20 20 20 20 20 20 58 6f | . | Xo|
|00000810| 66 66 73 65 74 20 20 3d | 20 35 3b 20 20 20 20 20 |ffset =| 5; |
|00000820| 7b 20 42 6c 61 6e 6b 20 | 70 69 78 65 6c 73 20 69 |{ Blank |pixels i|
|00000830| 6e 20 6c 65 66 74 20 62 | 6f 72 64 65 72 20 7d 0d |n left b|order }.|
|00000840| 20 20 20 20 20 20 20 20 | 20 59 6f 66 66 73 65 74 | | Yoffset|
|00000850| 20 20 3d 20 31 32 3b 20 | 20 20 20 7b 20 42 6c 61 | = 12; | { Bla|
|00000860| 6e 6b 20 70 69 78 65 6c | 73 20 69 6e 20 74 6f 70 |nk pixel|s in top|
|00000870| 20 62 6f 72 64 65 72 20 | 7d 0d 0d 20 20 20 20 20 | border |}.. |
|00000880| 20 42 45 47 49 4e 0d 20 | 20 20 20 20 20 20 20 20 | BEGIN. | |
|00000890| 4d 6f 76 65 54 6f 28 20 | 58 6f 66 66 73 65 74 20 |MoveTo( |Xoffset |
|000008a0| 2b 20 78 20 2a 20 74 65 | 78 74 57 69 64 74 68 20 |+ x * te|xtWidth |
|000008b0| 2c 20 59 6f 66 66 73 65 | 74 20 2b 20 79 20 2a 20 |, Yoffse|t + y * |
|000008c0| 74 65 78 74 48 65 69 67 | 68 74 20 29 3b 0d 20 20 |textHeig|ht );. |
|000008d0| 20 20 20 20 20 20 20 44 | 72 61 77 53 74 72 69 6e | D|rawStrin|
|000008e0| 67 28 20 73 20 29 0d 20 | 20 20 20 20 20 45 4e 44 |g( s ). | END|
|000008f0| 3b 20 7b 20 44 72 61 77 | 41 74 20 7d 0d 20 20 20 |; { Draw|At }. |
|00000900| 20 20 20 0d 50 52 4f 43 | 45 44 55 52 45 20 4e 65 | .PROC|EDURE Ne|
|00000910| 77 46 6f 6e 74 28 20 66 | 6f 6e 74 4e 75 6d 62 65 |wFont( f|ontNumbe|
|00000920| 72 2c 20 70 6f 69 6e 74 | 53 69 7a 65 20 3a 20 49 |r, point|Size : I|
|00000930| 4e 54 45 47 45 52 20 29 | 3b 0d 0d 20 20 20 7b 20 |NTEGER )|;.. { |
|00000940| 53 65 6c 65 63 74 20 6e | 65 77 20 66 6f 6e 74 20 |Select n|ew font |
|00000950| 61 6e 64 20 61 64 6a 75 | 73 74 20 76 61 72 69 61 |and adju|st varia|
|00000960| 62 6c 65 73 20 66 6f 72 | 20 44 72 61 77 41 74 20 |bles for| DrawAt |
|00000970| 7d 0d 0d 0d 20 20 20 20 | 20 20 42 45 47 49 4e 0d |}... | BEGIN.|
|00000980| 20 20 20 20 20 20 20 20 | 20 54 65 78 74 46 6f 6e | | TextFon|
|00000990| 74 28 20 66 6f 6e 74 4e | 75 6d 62 65 72 20 29 3b |t( fontN|umber );|
|000009a0| 20 20 20 20 20 20 20 20 | 20 20 7b 20 55 73 65 20 | | { Use |
|000009b0| 6e 65 77 20 66 6f 6e 74 | 20 7d 0d 20 20 20 20 20 |new font| }. |
|000009c0| 20 20 20 20 54 65 78 74 | 53 69 7a 65 28 20 70 6f | Text|Size( po|
|000009d0| 69 6e 74 53 69 7a 65 20 | 29 3b 20 20 20 20 20 20 |intSize |); |
|000009e0| 20 20 20 20 20 7b 20 55 | 73 65 20 6e 65 77 20 73 | { U|se new s|
|000009f0| 69 7a 65 20 7d 20 20 20 | 20 20 20 20 20 20 0d 20 |ize } | . |
|00000a00| 20 20 20 20 20 20 20 20 | 74 65 78 74 48 65 69 67 | |textHeig|
|00000a10| 68 74 20 3a 3d 20 70 6f | 69 6e 74 53 69 7a 65 20 |ht := po|intSize |
|00000a20| 2b 20 32 3b 20 20 20 20 | 20 7b 20 43 61 6c 63 20 |+ 2; | { Calc |
|00000a30| 6e 65 77 20 63 68 61 72 | 61 63 74 65 72 20 68 65 |new char|acter he|
|00000a40| 69 67 68 74 20 7d 0d 20 | 20 20 20 20 20 20 20 20 |ight }. | |
|00000a50| 74 65 78 74 57 69 64 74 | 68 20 3a 3d 20 43 68 61 |textWidt|h := Cha|
|00000a60| 72 57 69 64 74 68 28 20 | 27 4d 27 20 29 20 20 20 |rWidth( |'M' ) |
|00000a70| 20 7b 20 43 61 6c 63 20 | 77 69 64 74 68 20 6f 66 | { Calc |width of|
|00000a80| 20 77 69 64 65 73 74 20 | 63 68 61 72 20 7d 20 20 | widest |char } |
|00000a90| 20 20 20 20 0d 20 20 20 | 20 20 20 45 4e 44 3b 20 | . | END; |
|00000aa0| 7b 20 4e 65 77 46 6f 6e | 74 20 7d 0d 20 20 20 20 |{ NewFon|t }. |
|00000ab0| 20 20 0d 0d 0d 70 72 6f | 63 65 64 75 72 65 20 66 | ...pro|cedure f|
|00000ac0| 69 6c 6c 61 3b 0d 20 20 | 20 76 61 72 0d 20 20 20 |illa;. | var. |
|00000ad0| 20 20 20 69 2c 6a 20 20 | 20 20 20 3a 20 69 6e 74 | i,j | : int|
|00000ae0| 65 67 65 72 3b 0d 62 65 | 67 69 6e 0d 20 20 20 66 |eger;.be|gin. f|
|00000af0| 6f 72 20 69 20 3a 3d 20 | 31 20 74 6f 20 4e 20 64 |or i := |1 to N d|
|00000b00| 6f 0d 20 20 20 20 20 20 | 66 6f 72 20 6a 20 3a 3d |o. |for j :=|
|00000b10| 20 31 20 74 6f 20 4e 20 | 64 6f 0d 20 20 20 20 20 | 1 to N |do. |
|00000b20| 20 20 20 20 69 66 20 69 | 20 3c 3e 20 6a 20 74 68 | if i| <> j th|
|00000b30| 65 6e 20 61 5b 69 2c 6a | 5d 20 3a 3d 20 59 0d 20 |en a[i,j|] := Y. |
|00000b40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000b50| 20 20 65 6c 73 65 20 61 | 5b 69 2c 6a 5d 20 3a 3d | else a|[i,j] :=|
|00000b60| 20 58 20 2b 20 59 3b 0d | 65 6e 64 3b 0d 0d 70 72 | X + Y;.|end;..pr|
|00000b70| 6f 63 65 64 75 72 65 20 | 66 69 6c 6c 62 3b 0d 20 |ocedure |fillb;. |
|00000b80| 20 20 76 61 72 0d 20 20 | 20 20 20 20 69 2c 6a 20 | var. | i,j |
|00000b90| 20 20 20 20 3a 20 69 6e | 74 65 67 65 72 3b 0d 20 | : in|teger;. |
|00000ba0| 20 20 20 20 20 66 2c 64 | 20 20 20 20 20 3a 20 65 | f,d| : e|
|00000bb0| 78 74 65 6e 64 65 64 20 | 20 20 3b 0d 62 65 67 69 |xtended | ;.begi|
|00000bc0| 6e 0d 20 20 20 66 20 3a | 3d 20 58 20 2b 20 4e 2a |n. f :|= X + N*|
|00000bd0| 59 20 3b 0d 20 20 20 64 | 20 3a 3d 20 31 2e 30 2f |Y ;. d| := 1.0/|
|00000be0| 28 58 2a 66 29 20 20 20 | 20 20 3b 0d 20 20 20 66 |(X*f) | ;. f|
|00000bf0| 6f 72 20 69 20 3a 3d 20 | 31 20 74 6f 20 4e 20 64 |or i := |1 to N d|
|00000c00| 6f 0d 20 20 20 20 20 20 | 66 6f 72 20 6a 20 3a 3d |o. |for j :=|
|00000c10| 20 31 20 74 6f 20 4e 20 | 64 6f 0d 20 20 20 20 20 | 1 to N |do. |
|00000c20| 20 20 20 20 69 66 20 69 | 20 3c 3e 20 6a 20 74 68 | if i| <> j th|
|00000c30| 65 6e 20 62 5b 69 2c 6a | 5d 20 3a 3d 20 2d 59 2a |en b[i,j|] := -Y*|
|00000c40| 64 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |d. | |
|00000c50| 20 20 20 20 20 65 6c 73 | 65 20 62 5b 69 2c 6a 5d | els|e b[i,j]|
|00000c60| 20 3a 3d 20 28 2d 59 2b | 66 29 2a 64 20 20 20 20 | := (-Y+|f)*d |
|00000c70| 3b 0d 65 6e 64 3b 0d 0d | 70 72 6f 63 65 64 75 72 |;.end;..|procedur|
|00000c80| 65 20 66 69 6c 6c 63 3b | 0d 20 20 20 76 61 72 0d |e fillc;|. var.|
|00000c90| 20 20 20 20 20 20 69 2c | 6a 20 20 20 20 20 3a 20 | i,|j : |
|00000ca0| 69 6e 74 65 67 65 72 3b | 0d 62 65 67 69 6e 0d 20 |integer;|.begin. |
|00000cb0| 20 20 66 6f 72 20 69 20 | 3a 3d 20 31 20 74 6f 20 | for i |:= 1 to |
|00000cc0| 4e 20 64 6f 0d 20 20 20 | 20 20 20 66 6f 72 20 6a |N do. | for j|
|00000cd0| 20 3a 3d 20 31 20 74 6f | 20 4e 20 64 6f 0d 20 20 | := 1 to| N do. |
|00000ce0| 20 20 20 20 20 20 20 63 | 5b 69 2c 6a 5d 20 3a 3d | c|[i,j] :=|
|00000cf0| 20 30 2e 30 3b 0d 65 6e | 64 3b 0d 0d 70 72 6f 63 | 0.0;.en|d;..proc|
|00000d00| 65 64 75 72 65 20 6d 75 | 6c 74 3b 0d 20 20 20 76 |edure mu|lt;. v|
|00000d10| 61 72 0d 20 20 20 20 20 | 20 69 2c 20 6a 2c 20 6b |ar. | i, j, k|
|00000d20| 20 20 20 20 20 20 20 20 | 20 3a 20 69 6e 74 65 67 | | : integ|
|00000d30| 65 72 3b 0d 62 65 67 69 | 6e 0d 20 20 20 66 6f 72 |er;.begi|n. for|
|00000d40| 20 69 20 3a 3d 20 31 20 | 74 6f 20 4e 20 64 6f 0d | i := 1 |to N do.|
|00000d50| 20 20 20 20 20 20 66 6f | 72 20 6a 20 3a 3d 20 31 | fo|r j := 1|
|00000d60| 20 74 6f 20 4e 20 64 6f | 0d 20 20 20 20 20 20 20 | to N do|. |
|00000d70| 20 20 62 65 67 69 6e 0d | 20 20 20 20 20 20 20 20 | begin.| |
|00000d80| 20 73 75 6d 20 3a 3d 20 | 30 2e 30 3b 0d 20 20 20 | sum := |0.0;. |
|00000d90| 20 20 20 20 20 20 66 6f | 72 20 6b 20 3a 3d 20 31 | fo|r k := 1|
|00000da0| 20 74 6f 20 4e 20 64 6f | 0d 20 20 20 20 20 20 20 | to N do|. |
|00000db0| 20 20 20 20 20 73 75 6d | 20 3a 3d 20 73 75 6d 20 | sum| := sum |
|00000dc0| 2b 20 61 5b 69 2c 6b 5d | 20 2a 20 62 5b 6b 2c 6a |+ a[i,k]| * b[k,j|
|00000dd0| 5d 3b 0d 20 20 20 20 20 | 20 20 20 20 63 5b 69 2c |];. | c[i,|
|00000de0| 6a 5d 20 3a 3d 20 73 75 | 6d 3b 0d 20 20 20 20 20 |j] := su|m;. |
|00000df0| 20 20 20 20 65 6e 64 3b | 0d 65 6e 64 3b 0d 0d 70 | end;|.end;..p|
|00000e00| 72 6f 63 65 64 75 72 65 | 20 73 75 6d 69 74 20 3b |rocedure| sumit ;|
|00000e10| 0d 20 20 20 76 61 72 0d | 20 20 20 20 20 20 69 2c |. var.| i,|
|00000e20| 20 6a 20 20 20 20 20 20 | 20 20 20 20 20 20 3a 20 | j | : |
|00000e30| 69 6e 74 65 67 65 72 3b | 0d 62 65 67 69 6e 0d 20 |integer;|.begin. |
|00000e40| 20 20 73 75 6d 20 3a 3d | 20 30 2e 30 3b 0d 20 20 | sum :=| 0.0;. |
|00000e50| 20 66 6f 72 20 69 20 3a | 3d 20 31 20 74 6f 20 4e | for i :|= 1 to N|
|00000e60| 20 64 6f 20 63 5b 69 2c | 69 5d 20 3a 3d 20 63 5b | do c[i,|i] := c[|
|00000e70| 69 2c 69 5d 20 2d 20 31 | 2e 30 20 3b 0d 20 20 20 |i,i] - 1|.0 ;. |
|00000e80| 66 6f 72 20 69 20 3a 3d | 20 31 20 74 6f 20 4e 20 |for i :=| 1 to N |
|00000e90| 64 6f 0d 20 20 20 20 20 | 20 66 6f 72 20 6a 20 3a |do. | for j :|
|00000ea0| 3d 20 31 20 74 6f 20 4e | 20 64 6f 0d 20 20 20 20 |= 1 to N| do. |
|00000eb0| 20 20 20 20 20 73 75 6d | 20 3a 3d 20 73 75 6d 20 | sum| := sum |
|00000ec0| 2b 20 61 62 73 28 63 5b | 69 2c 6a 5d 29 3b 0d 65 |+ abs(c[|i,j]);.e|
|00000ed0| 6e 64 3b 0d 0d 66 75 6e | 63 74 69 6f 6e 20 6f 73 |nd;..fun|ction os|
|00000ee0| 67 6e 28 6e 3a 69 6e 74 | 65 67 65 72 29 20 3a 20 |gn(n:int|eger) : |
|00000ef0| 65 78 74 65 6e 64 65 64 | 20 3b 20 7b 6e 65 67 61 |extended| ; {nega|
|00000f00| 74 69 76 65 20 69 66 20 | 6e 20 6f 64 64 7d 0d 62 |tive if |n odd}.b|
|00000f10| 65 67 69 6e 0d 20 20 20 | 69 66 20 6e 20 3d 20 32 |egin. |if n = 2|
|00000f20| 2a 28 6e 20 64 69 76 20 | 32 29 20 74 68 65 6e 20 |*(n div |2) then |
|00000f30| 6f 73 67 6e 20 3a 3d 20 | 31 2e 30 0d 20 20 20 20 |osgn := |1.0. |
|00000f40| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00000f50| 20 20 65 6c 73 65 20 6f | 73 67 6e 20 3a 3d 20 2d | else o|sgn := -|
|00000f60| 31 2e 30 20 3b 0d 65 6e | 64 3b 0d 0d 0d 0d 70 72 |1.0 ;.en|d;....pr|
|00000f70| 6f 63 65 64 75 72 65 20 | 61 72 69 74 68 20 3b 0d |ocedure |arith ;.|
|00000f80| 20 20 20 7b 54 45 53 54 | 20 31 3a 20 77 65 6c 6c | {TEST| 1: well|
|00000f90| 2d 63 6f 6e 64 69 74 69 | 6f 6e 65 64 20 63 6f 6d |-conditi|oned com|
|00000fa0| 62 69 6e 61 74 6f 72 69 | 61 6c 20 6d 61 74 72 69 |binatori|al matri|
|00000fb0| 78 20 74 69 6d 65 73 20 | 69 74 73 20 69 6e 76 65 |x times |its inve|
|00000fc0| 72 73 65 2e 7d 0d 76 61 | 72 0d 20 20 20 69 2c 20 |rse.}.va|r. i, |
|00000fd0| 6b 2c 20 6c 2c 20 6d 20 | 20 20 20 20 20 20 20 3a |k, l, m | :|
|00000fe0| 20 69 6e 74 65 67 65 72 | 20 3b 0d 62 65 67 69 6e | integer| ;.begin|
|00000ff0| 0d 20 20 20 7a 7a 20 3a | 3d 20 20 30 2e 33 30 20 |. zz :|= 0.30 |
|00001000| 3b 20 20 20 7b 66 61 63 | 74 6f 72 20 75 73 65 64 |; {fac|tor used|
|00001010| 20 74 6f 20 63 6f 6e 74 | 72 6f 6c 20 64 65 63 72 | to cont|rol decr|
|00001020| 65 61 73 65 20 6f 66 20 | 63 6f 6e 64 69 74 69 6f |ease of |conditio|
|00001030| 6e 20 6f 66 20 6d 61 74 | 72 69 78 7d 0d 20 20 20 |n of mat|rix}. |
|00001040| 66 6f 72 20 6c 20 3a 3d | 20 31 20 74 6f 20 35 20 |for l :=| 1 to 5 |
|00001050| 64 6f 0d 20 20 20 20 20 | 20 62 65 67 69 6e 0d 20 |do. | begin. |
|00001060| 20 20 20 20 20 78 78 20 | 3a 3d 20 20 7a 7a 2a 28 | xx |:= zz*(|
|00001070| 33 2d 6c 29 20 3b 0d 20 | 20 20 20 20 20 58 20 20 |3-l) ;. | X |
|00001080| 3a 3d 20 20 65 78 70 28 | 78 78 2f 4c 4f 47 31 30 |:= exp(|xx/LOG10|
|00001090| 45 29 3b 20 20 7b 73 6c | 6f 77 6c 79 20 64 65 63 |E); {sl|owly dec|
|000010a0| 72 65 61 73 65 73 20 63 | 6f 6e 64 69 74 69 6f 6e |reases c|ondition|
|000010b0| 69 6e 67 7d 0d 20 20 20 | 20 20 20 66 69 6c 6c 61 |ing}. | filla|
|000010c0| 20 3b 20 66 69 6c 6c 62 | 20 3b 20 66 69 6c 6c 63 | ; fillb| ; fillc|
|000010d0| 20 3b 0d 20 20 20 20 20 | 20 6d 75 6c 74 20 3b 20 | ;. | mult ; |
|000010e0| 73 75 6d 69 74 20 3b 0d | 20 20 20 20 20 20 65 72 |sumit ;.| er|
|000010f0| 72 5b 6c 5d 20 3a 3d 20 | 73 75 6d 2f 73 71 72 28 |r[l] := |sum/sqr(|
|00001100| 4e 29 20 3b 20 20 7b 65 | 72 72 6f 72 20 69 73 20 |N) ; {e|rror is |
|00001110| 61 76 65 72 61 67 65 20 | 61 62 73 6f 6c 75 74 65 |average |absolute|
|00001120| 20 65 72 72 6f 72 20 70 | 65 72 20 65 6c 65 6d 65 | error p|er eleme|
|00001130| 6e 74 7d 0d 20 20 20 20 | 20 20 69 66 20 65 72 72 |nt}. | if err|
|00001140| 5b 6c 5d 20 3e 20 4d 49 | 4e 45 52 52 20 74 68 65 |[l] > MI|NERR the|
|00001150| 6e 20 6c 6f 67 65 72 72 | 5b 6c 5d 20 3a 3d 20 2d |n logerr|[l] := -|
|00001160| 6c 6e 28 65 72 72 5b 6c | 5d 29 20 2a 20 4c 4f 47 |ln(err[l|]) * LOG|
|00001170| 31 30 45 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |10E. | |
|00001180| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 65 6c | | el|
|00001190| 73 65 20 6c 6f 67 65 72 | 72 5b 6c 5d 20 3a 3d 20 |se loger|r[l] := |
|000011a0| 4c 4f 47 4d 49 4e 3b 0d | 20 20 20 20 20 20 74 65 |LOGMIN;.| te|
|000011b0| 73 74 65 72 72 5b 31 5d | 20 3a 3d 20 74 65 73 74 |sterr[1]| := test|
|000011c0| 65 72 72 5b 31 5d 20 2b | 20 28 4c 4f 47 4d 49 4e |err[1] +| (LOGMIN|
|000011d0| 20 2d 20 6c 6f 67 65 72 | 72 5b 6c 5d 29 20 3b 0d | - loger|r[l]) ;.|
|000011e0| 20 20 20 20 20 20 65 6e | 64 20 3b 0d 20 20 20 74 | en|d ;. t|
|000011f0| 65 73 74 65 72 72 5b 31 | 5d 20 3a 3d 20 74 65 73 |esterr[1|] := tes|
|00001200| 74 65 72 72 5b 31 5d 2f | 35 2e 30 20 3b 0d 0d 20 |terr[1]/|5.0 ;.. |
|00001210| 20 20 44 72 61 77 41 74 | 28 35 2c 32 31 2c 27 23 | DrawAt|(5,21,'#|
|00001220| 31 61 3a 20 31 30 78 31 | 30 20 6d 61 74 72 69 78 |1a: 10x1|0 matrix|
|00001230| 20 20 20 20 20 20 20 27 | 29 3b 0d 20 20 20 66 2e | '|);. f.|
|00001240| 53 74 79 6c 65 20 3a 3d | 20 46 69 78 65 64 44 65 |Style :=| FixedDe|
|00001250| 63 69 6d 61 6c 3b 0d 20 | 20 20 66 2e 44 69 67 69 |cimal;. | f.Digi|
|00001260| 74 73 20 3a 3d 20 31 3b | 0d 20 20 20 7a 20 3a 3d |ts := 1;|. z :=|
|00001270| 20 32 36 3b 0d 20 20 20 | 66 6f 72 20 69 20 3a 3d | 26;. |for i :=|
|00001280| 20 31 20 74 6f 20 35 20 | 64 6f 20 0d 20 20 20 20 | 1 to 5 |do . |
|00001290| 20 62 65 67 69 6e 0d 20 | 20 20 20 20 20 20 7a 20 | begin. | z |
|000012a0| 3a 3d 20 7a 20 2b 20 35 | 3b 0d 20 20 20 20 20 20 |:= z + 5|;. |
|000012b0| 20 4e 75 6d 32 53 74 72 | 28 66 2c 6c 6f 67 65 72 | Num2Str|(f,loger|
|000012c0| 72 5b 69 5d 2c 73 29 3b | 0d 20 20 20 20 20 20 20 |r[i],s);|. |
|000012d0| 44 72 61 77 41 74 28 7a | 2c 32 31 2c 73 29 3b 0d |DrawAt(z|,21,s);.|
|000012e0| 20 20 20 20 20 65 6e 64 | 3b 0d 20 20 20 66 2e 44 | end|;. f.D|
|000012f0| 69 67 69 74 73 20 3a 3d | 20 32 3b 0d 20 20 20 4e |igits :=| 2;. N|
|00001300| 75 6d 32 53 74 72 28 66 | 2c 74 65 73 74 65 72 72 |um2Str(f|,testerr|
|00001310| 5b 31 5d 2c 73 29 3b 0d | 20 20 20 44 72 61 77 41 |[1],s);.| DrawA|
|00001320| 74 28 35 39 2c 32 31 2c | 73 29 3b 0d 0d 7b 20 69 |t(59,21,|s);..{ i|
|00001330| 6e 66 69 6e 69 74 65 20 | 70 72 6f 64 75 63 74 20 |nfinite |product |
|00001340| 66 6f 72 20 31 2d 78 3a | 20 72 75 6e 20 69 6e 20 |for 1-x:| run in |
|00001350| 72 65 76 65 72 73 65 20 | 74 6f 20 74 65 73 74 20 |reverse |to test |
|00001360| 64 69 76 69 73 69 6f 6e | 20 7d 0d 0d 20 20 20 73 |division| }.. s|
|00001370| 75 6d 20 3a 3d 20 30 2e | 30 20 3b 0d 20 20 20 66 |um := 0.|0 ;. f|
|00001380| 6f 72 20 6c 20 3a 3d 20 | 31 20 74 6f 20 35 20 64 |or l := |1 to 5 d|
|00001390| 6f 0d 20 20 20 20 20 20 | 62 65 67 69 6e 0d 20 20 |o. |begin. |
|000013a0| 20 20 20 20 78 78 20 3a | 3d 20 28 31 20 2d 20 6c | xx :|= (1 - l|
|000013b0| 29 20 2f 20 34 2e 30 20 | 3b 0d 20 20 20 20 20 20 |) / 4.0 |;. |
|000013c0| 7a 7a 20 3a 3d 20 65 78 | 70 28 28 78 78 2d 32 2e |zz := ex|p((xx-2.|
|000013d0| 30 29 2f 4c 4f 47 31 30 | 45 29 3b 20 7b 69 6e 63 |0)/LOG10|E); {inc|
|000013e0| 72 65 61 73 65 73 20 6e | 75 6d 62 65 72 20 6f 66 |reases n|umber of|
|000013f0| 20 66 61 63 74 6f 72 73 | 20 66 6f 72 20 63 6f 6e | factors| for con|
|00001400| 76 65 72 67 65 6e 63 65 | 7d 0d 20 20 20 20 20 20 |vergence|}. |
|00001410| 78 78 20 3a 3d 20 31 2e | 30 20 2d 20 7a 7a 20 3b |xx := 1.|0 - zz ;|
|00001420| 20 20 7b 20 7a 7a 20 f7 | 20 2e 30 31 20 3d 3e 20 | { zz .| .01 => |
|00001430| 6c 6f 73 73 20 6f 66 20 | 32 20 73 69 67 20 66 69 |loss of |2 sig fi|
|00001440| 67 73 20 7d 0d 20 20 20 | 7b 54 68 65 20 66 6f 6c |gs }. |{The fol|
|00001450| 6c 6f 77 69 6e 67 20 66 | 6f 72 6d 75 6c 61 20 66 |lowing f|ormula f|
|00001460| 6f 72 20 74 68 65 20 6e | 75 6d 62 65 72 20 6f 66 |or the n|umber of|
|00001470| 20 66 61 63 74 6f 72 73 | 20 69 73 20 64 65 73 69 | factors| is desi|
|00001480| 67 6e 65 64 20 74 6f 20 | 67 69 76 65 0d 20 20 20 |gned to |give. |
|00001490| 20 20 20 73 75 66 66 69 | 63 69 65 6e 74 20 61 63 | suffi|cient ac|
|000014a0| 63 75 72 61 63 79 2c 20 | 77 68 69 6c 65 20 61 76 |curacy, |while av|
|000014b0| 6f 69 64 69 6e 67 20 75 | 6e 64 65 72 66 6c 6f 77 |oiding u|nderflow|
|000014c0| 20 69 6e 20 74 68 65 20 | 70 6f 77 65 72 73 20 6f | in the |powers o|
|000014d0| 66 20 78 78 2e 0d 20 20 | 20 20 20 20 49 74 20 67 |f xx.. | It g|
|000014e0| 69 76 65 73 20 61 20 6d | 6f 72 65 20 75 6e 69 66 |ives a m|ore unif|
|000014f0| 6f 72 6d 20 63 6f 6d 70 | 75 74 61 74 69 6f 6e 20 |orm comp|utation |
|00001500| 66 72 6f 6d 20 63 6f 6d | 70 69 6c 65 72 20 74 6f |from com|piler to|
|00001510| 20 63 6f 6d 70 69 6c 65 | 72 2e 7d 0d 20 20 20 20 | compile|r.}. |
|00001520| 20 20 6d 20 3a 3d 20 31 | 32 2b 6c 20 3b 0d 20 20 | m := 1|2+l ;. |
|00001530| 20 20 20 20 71 75 6f 74 | 20 3a 3d 20 31 2e 30 20 | quot| := 1.0 |
|00001540| 3b 0d 20 20 20 20 20 20 | 66 6f 72 20 6b 20 3a 3d |;. |for k :=|
|00001550| 20 31 20 74 6f 20 6d 20 | 64 6f 0d 20 20 20 20 20 | 1 to m |do. |
|00001560| 20 20 20 20 62 65 67 69 | 6e 0d 20 20 20 20 20 20 | begi|n. |
|00001570| 20 20 20 71 75 6f 74 20 | 3a 3d 20 71 75 6f 74 20 | quot |:= quot |
|00001580| 2f 20 28 31 2e 30 20 2b | 20 78 78 29 20 3b 0d 20 |/ (1.0 +| xx) ;. |
|00001590| 20 20 20 20 20 20 20 20 | 78 78 20 3a 3d 20 78 78 | |xx := xx|
|000015a0| 20 2a 20 78 78 20 3b 0d | 20 20 20 20 20 20 20 20 | * xx ;.| |
|000015b0| 20 65 6e 64 20 3b 0d 20 | 20 20 20 20 20 65 72 72 | end ;. | err|
|000015c0| 5b 6c 5d 20 3a 3d 20 61 | 62 73 28 31 2e 30 20 2d |[l] := a|bs(1.0 -|
|000015d0| 20 71 75 6f 74 2f 7a 7a | 29 2a 30 2e 30 31 20 3b | quot/zz|)*0.01 ;|
|000015e0| 0d 20 20 20 20 20 20 7b | 20 66 61 63 74 6f 72 20 |. {| factor |
|000015f0| 6f 66 20 30 2e 30 31 20 | 74 6f 20 63 6f 6d 70 65 |of 0.01 |to compe|
|00001600| 6e 73 61 74 65 20 66 6f | 72 20 63 61 6e 63 65 6c |nsate fo|r cancel|
|00001610| 6c 61 74 69 6f 6e 20 65 | 72 72 6f 72 73 20 7d 0d |lation e|rrors }.|
|00001620| 20 20 20 20 20 20 69 66 | 20 65 72 72 5b 6c 5d 20 | if| err[l] |
|00001630| 3e 20 4d 49 4e 45 52 52 | 20 74 68 65 6e 20 64 69 |> MINERR| then di|
|00001640| 76 65 72 72 5b 6c 5d 20 | 3a 3d 20 2d 6c 6e 28 65 |verr[l] |:= -ln(e|
|00001650| 72 72 5b 6c 5d 29 20 2a | 20 4c 4f 47 31 30 45 0d |rr[l]) *| LOG10E.|
|00001660| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001670| 20 20 20 20 20 20 20 20 | 20 65 6c 73 65 20 64 69 | | else di|
|00001680| 76 65 72 72 5b 6c 5d 20 | 3a 3d 20 4c 4f 47 4d 49 |verr[l] |:= LOGMI|
|00001690| 4e 3b 0d 20 20 20 20 20 | 20 73 75 6d 20 3a 3d 20 |N;. | sum := |
|000016a0| 73 75 6d 20 2b 20 28 4c | 4f 47 4d 49 4e 20 2d 20 |sum + (L|OGMIN - |
|000016b0| 64 69 76 65 72 72 5b 6c | 5d 29 20 3b 0d 20 20 20 |diverr[l|]) ;. |
|000016c0| 20 20 20 6c 6f 67 65 72 | 72 5b 6c 5d 20 3a 3d 20 | loger|r[l] := |
|000016d0| 64 69 76 65 72 72 5b 6c | 5d 20 3b 20 7b 6e 65 65 |diverr[l|] ; {nee|
|000016e0| 64 65 64 20 66 6f 72 20 | 6c 61 74 65 72 20 61 76 |ded for |later av|
|000016f0| 65 72 61 67 65 7d 0d 20 | 20 20 20 20 20 65 6e 64 |erage}. | end|
|00001700| 20 3b 0d 20 20 20 73 75 | 6d 20 3a 3d 20 73 75 6d | ;. su|m := sum|
|00001710| 20 2f 20 35 2e 30 20 3b | 0d 0d 0d 20 44 72 61 77 | / 5.0 ;|... Draw|
|00001720| 41 74 28 35 2c 32 32 2c | 27 23 31 20 3a 20 69 6e |At(5,22,|'#1 : in|
|00001730| 66 69 6e 69 74 65 20 70 | 72 6f 64 75 63 74 20 20 |finite p|roduct |
|00001740| 20 27 29 3b 0d 20 20 20 | 66 2e 44 69 67 69 74 73 | ');. |f.Digits|
|00001750| 20 3a 3d 20 31 3b 0d 20 | 20 20 7a 20 3a 3d 20 32 | := 1;. | z := 2|
|00001760| 36 3b 0d 20 20 20 66 6f | 72 20 69 20 3a 3d 20 31 |6;. fo|r i := 1|
|00001770| 20 74 6f 20 35 20 64 6f | 20 0d 20 20 20 20 20 62 | to 5 do| . b|
|00001780| 65 67 69 6e 0d 20 20 20 | 20 20 20 20 7a 20 3a 3d |egin. | z :=|
|00001790| 20 7a 20 2b 20 35 3b 0d | 20 20 20 20 20 20 20 4e | z + 5;.| N|
|000017a0| 75 6d 32 53 74 72 28 66 | 2c 64 69 76 65 72 72 5b |um2Str(f|,diverr[|
|000017b0| 69 5d 2c 73 29 3b 0d 20 | 20 20 20 20 20 20 44 72 |i],s);. | Dr|
|000017c0| 61 77 41 74 28 7a 2c 32 | 32 2c 73 29 3b 0d 20 20 |awAt(z,2|2,s);. |
|000017d0| 20 20 20 65 6e 64 3b 0d | 20 20 20 66 2e 44 69 67 | end;.| f.Dig|
|000017e0| 69 74 73 20 3a 3d 20 32 | 3b 0d 20 20 20 4e 75 6d |its := 2|;. Num|
|000017f0| 32 53 74 72 28 66 2c 73 | 75 6d 2c 73 29 3b 0d 20 |2Str(f,s|um,s);. |
|00001800| 20 20 44 72 61 77 41 74 | 28 35 39 2c 32 32 2c 73 | DrawAt|(59,22,s|
|00001810| 29 3b 0d 0d 0d 7b 20 74 | 65 73 74 20 63 6f 6e 74 |);...{ t|est cont|
|00001820| 69 6e 75 65 64 20 66 72 | 61 63 74 69 6f 6e 20 66 |inued fr|action f|
|00001830| 6f 72 20 74 61 6e 67 65 | 6e 74 20 61 67 61 69 6e |or tange|nt again|
|00001840| 73 74 20 65 78 61 63 74 | 20 76 61 6c 75 65 73 20 |st exact| values |
|00001850| 66 6f 72 20 66 69 76 65 | 20 61 6e 67 6c 65 73 3a |for five| angles:|
|00001860| 0d 20 20 20 74 68 69 73 | 20 69 73 20 61 20 74 65 |. this| is a te|
|00001870| 73 74 20 6f 66 20 64 69 | 76 69 73 69 6f 6e 20 61 |st of di|vision a|
|00001880| 6e 64 20 73 75 62 74 72 | 61 63 74 69 6f 6e 2c 20 |nd subtr|action, |
|00001890| 6e 6f 74 20 6f 66 20 74 | 68 65 20 74 61 6e 67 65 |not of t|he tange|
|000018a0| 6e 74 2e 7d 0d 0d 20 20 | 20 74 68 5b 31 5d 20 3a |nt.}.. | th[1] :|
|000018b0| 3d 20 50 49 2f 31 32 2e | 30 20 3b 0d 20 20 20 74 |= PI/12.|0 ;. t|
|000018c0| 68 5b 32 5d 20 3a 3d 20 | 50 49 2f 36 2e 30 20 3b |h[2] := |PI/6.0 ;|
|000018d0| 0d 20 20 20 74 68 5b 33 | 5d 20 3a 3d 20 50 49 2f |. th[3|] := PI/|
|000018e0| 34 2e 30 20 3b 0d 20 20 | 20 74 68 5b 34 5d 20 3a |4.0 ;. | th[4] :|
|000018f0| 3d 20 50 49 2f 33 2e 30 | 20 3b 0d 20 20 20 74 68 |= PI/3.0| ;. th|
|00001900| 5b 35 5d 20 3a 3d 20 35 | 2e 30 2a 50 49 2f 31 32 |[5] := 5|.0*PI/12|
|00001910| 2e 30 20 3b 0d 20 20 20 | 76 61 6c 5b 31 5d 20 3a |.0 ;. |val[1] :|
|00001920| 3d 20 32 2e 30 20 2d 20 | 52 4f 4f 54 33 20 3b 0d |= 2.0 - |ROOT3 ;.|
|00001930| 20 20 20 76 61 6c 5b 32 | 5d 20 3a 3d 20 31 2e 30 | val[2|] := 1.0|
|00001940| 20 2f 20 52 4f 4f 54 33 | 20 3b 0d 20 20 20 76 61 | / ROOT3| ;. va|
|00001950| 6c 5b 33 5d 20 3a 3d 20 | 31 2e 30 30 20 3b 0d 20 |l[3] := |1.00 ;. |
|00001960| 20 20 76 61 6c 5b 34 5d | 20 3a 3d 20 52 4f 4f 54 | val[4]| := ROOT|
|00001970| 33 20 3b 0d 20 20 20 76 | 61 6c 5b 35 5d 20 3a 3d |3 ;. v|al[5] :=|
|00001980| 20 32 2e 30 20 2b 20 52 | 4f 4f 54 33 20 3b 0d 20 | 2.0 + R|OOT3 ;. |
|00001990| 20 20 73 75 6d 20 3a 3d | 20 30 2e 30 20 3b 0d 20 | sum :=| 0.0 ;. |
|000019a0| 20 20 6d 20 3a 3d 20 38 | 20 3b 20 20 20 7b 20 74 | m := 8| ; { t|
|000019b0| 68 69 73 20 6e 75 6d 62 | 65 72 20 6f 66 20 69 74 |his numb|er of it|
|000019c0| 65 72 61 74 69 6f 6e 73 | 20 67 69 76 65 73 20 73 |erations| gives s|
|000019d0| 75 66 66 69 63 69 65 6e | 74 20 61 63 63 75 72 61 |ufficien|t accura|
|000019e0| 63 79 20 7d 0d 20 20 20 | 66 6f 72 20 6c 20 3a 3d |cy }. |for l :=|
|000019f0| 20 31 20 74 6f 20 35 20 | 64 6f 0d 20 20 20 20 20 | 1 to 5 |do. |
|00001a00| 20 62 65 67 69 6e 0d 20 | 20 20 20 20 20 61 30 20 | begin. | a0 |
|00001a10| 3a 3d 20 32 2e 30 20 2a | 20 6d 20 2b 20 31 2e 30 |:= 2.0 *| m + 1.0|
|00001a20| 20 3b 0d 20 20 20 20 20 | 20 70 32 20 3a 3d 20 74 | ;. | p2 := t|
|00001a30| 68 5b 6c 5d 20 3b 0d 20 | 20 20 20 20 20 70 20 20 |h[l] ;. | p |
|00001a40| 3a 3d 20 73 71 72 28 70 | 32 29 20 3b 0d 20 20 20 |:= sqr(p|2) ;. |
|00001a50| 20 20 20 64 30 20 3a 3d | 20 61 30 20 2d 20 70 20 | d0 :=| a0 - p |
|00001a60| 2f 20 28 61 30 20 2b 20 | 32 2e 30 29 20 3b 0d 20 |/ (a0 + |2.0) ;. |
|00001a70| 20 20 20 20 20 66 6f 72 | 20 6b 20 3a 3d 20 31 20 | for| k := 1 |
|00001a80| 74 6f 20 6d 20 64 6f 0d | 20 20 20 20 20 20 20 20 |to m do.| |
|00001a90| 20 62 65 67 69 6e 0d 20 | 20 20 20 20 20 20 20 20 | begin. | |
|00001aa0| 61 31 20 3a 3d 20 61 30 | 20 2d 20 32 2e 30 20 3b |a1 := a0| - 2.0 ;|
|00001ab0| 0d 20 20 20 20 20 20 20 | 20 20 64 31 20 3a 3d 20 |. | d1 := |
|00001ac0| 61 31 20 2d 20 70 20 2f | 20 64 30 20 3b 0d 20 20 |a1 - p /| d0 ;. |
|00001ad0| 20 20 20 20 20 20 20 61 | 30 20 3a 3d 20 61 31 20 | a|0 := a1 |
|00001ae0| 3b 0d 20 20 20 20 20 20 | 20 20 20 64 30 20 3a 3d |;. | d0 :=|
|00001af0| 20 64 31 20 3b 0d 20 20 | 20 20 20 20 20 20 20 65 | d1 ;. | e|
|00001b00| 6e 64 20 3b 0d 20 20 20 | 20 20 20 66 72 61 63 20 |nd ;. | frac |
|00001b10| 3a 3d 20 70 32 20 2f 20 | 64 30 20 3b 0d 20 20 20 |:= p2 / |d0 ;. |
|00001b20| 20 20 20 66 75 6e 63 74 | 5b 6c 5d 20 3a 3d 20 66 | funct|[l] := f|
|00001b30| 72 61 63 20 3b 0d 20 20 | 20 20 20 20 65 6e 64 20 |rac ;. | end |
|00001b40| 3b 0d 0d 20 20 20 66 6f | 72 20 6c 20 3a 3d 20 31 |;.. fo|r l := 1|
|00001b50| 20 74 6f 20 35 20 64 6f | 0d 20 20 20 20 20 20 62 | to 5 do|. b|
|00001b60| 65 67 69 6e 0d 20 20 20 | 20 20 20 65 72 72 5b 6c |egin. | err[l|
|00001b70| 5d 20 3a 3d 20 61 62 73 | 28 31 2e 30 20 2d 20 76 |] := abs|(1.0 - v|
|00001b80| 61 6c 5b 6c 5d 2f 66 75 | 6e 63 74 5b 6c 5d 29 20 |al[l]/fu|nct[l]) |
|00001b90| 3b 0d 20 20 20 20 20 20 | 69 66 20 65 72 72 5b 6c |;. |if err[l|
|00001ba0| 5d 20 3e 20 4d 49 4e 45 | 52 52 20 74 68 65 6e 20 |] > MINE|RR then |
|00001bb0| 64 69 76 65 72 72 5b 6c | 5d 20 3a 3d 20 2d 6c 6e |diverr[l|] := -ln|
|00001bc0| 28 65 72 72 5b 6c 5d 29 | 20 2a 20 4c 4f 47 31 30 |(err[l])| * LOG10|
|00001bd0| 45 0d 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |E. | |
|00001be0| 20 20 20 20 20 20 20 20 | 20 20 20 20 65 6c 73 65 | | else|
|00001bf0| 20 64 69 76 65 72 72 5b | 6c 5d 20 3a 3d 20 4c 4f | diverr[|l] := LO|
|00001c00| 47 4d 49 4e 3b 0d 20 20 | 20 20 20 20 73 75 6d 20 |GMIN;. | sum |
|00001c10| 3a 3d 20 73 75 6d 20 2b | 20 28 4c 4f 47 4d 49 4e |:= sum +| (LOGMIN|
|00001c20| 20 2d 20 64 69 76 65 72 | 72 5b 6c 5d 29 3b 0d 20 | - diver|r[l]);. |
|00001c30| 20 20 20 20 20 65 6e 64 | 20 3b 0d 20 20 20 73 75 | end| ;. su|
|00001c40| 6d 20 3a 3d 20 73 75 6d | 20 2f 20 35 2e 30 20 3b |m := sum| / 5.0 ;|
|00001c50| 0d 0d 0d 20 20 20 44 72 | 61 77 41 74 28 35 2c 32 |... Dr|awAt(5,2|
|00001c60| 33 2c 27 23 31 20 3a 20 | 63 6f 6e 74 69 6e 75 65 |3,'#1 : |continue|
|00001c70| 64 20 66 72 61 63 74 69 | 6f 6e 20 27 29 3b 0d 20 |d fracti|on ');. |
|00001c80| 20 20 66 2e 44 69 67 69 | 74 73 20 3a 3d 20 31 3b | f.Digi|ts := 1;|
|00001c90| 0d 20 20 20 7a 20 3a 3d | 20 32 36 3b 0d 20 20 20 |. z :=| 26;. |
|00001ca0| 66 6f 72 20 69 20 3a 3d | 20 31 20 74 6f 20 35 20 |for i :=| 1 to 5 |
|00001cb0| 64 6f 20 0d 20 20 20 20 | 20 62 65 67 69 6e 0d 20 |do . | begin. |
|00001cc0| 20 20 20 20 20 20 7a 20 | 3a 3d 20 7a 20 2b 20 35 | z |:= z + 5|
|00001cd0| 3b 0d 20 20 20 20 20 20 | 20 4e 75 6d 32 53 74 72 |;. | Num2Str|
|00001ce0| 28 66 2c 64 69 76 65 72 | 72 5b 69 5d 2c 73 29 3b |(f,diver|r[i],s);|
|00001cf0| 0d 20 20 20 20 20 20 20 | 44 72 61 77 41 74 28 7a |. |DrawAt(z|
|00001d00| 2c 32 33 2c 73 29 3b 0d | 20 20 20 20 20 65 6e 64 |,23,s);.| end|
|00001d10| 3b 0d 20 20 20 66 2e 44 | 69 67 69 74 73 20 3a 3d |;. f.D|igits :=|
|00001d20| 20 32 3b 0d 20 20 20 4e | 75 6d 32 53 74 72 28 66 | 2;. N|um2Str(f|
|00001d30| 2c 73 75 6d 2c 73 29 3b | 0d 20 20 20 44 72 61 77 |,sum,s);|. Draw|
|00001d40| 41 74 28 35 39 2c 32 33 | 2c 73 29 3b 0d 20 20 20 |At(59,23|,s);. |
|00001d50| 0d 20 20 20 66 6f 72 20 | 69 20 3a 3d 20 31 20 74 |. for |i := 1 t|
|00001d60| 6f 20 35 20 64 6f 0d 20 | 20 20 20 20 20 62 65 67 |o 5 do. | beg|
|00001d70| 69 6e 0d 20 20 20 20 20 | 20 6c 6f 67 65 72 72 5b |in. | logerr[|
|00001d80| 69 5d 20 3a 3d 20 30 2e | 35 2a 28 6c 6f 67 65 72 |i] := 0.|5*(loger|
|00001d90| 72 5b 69 5d 20 2b 20 64 | 69 76 65 72 72 5b 69 5d |r[i] + d|iverr[i]|
|00001da0| 29 20 3b 0d 20 20 20 20 | 20 20 74 65 73 74 65 72 |) ;. | tester|
|00001db0| 72 5b 32 5d 20 3a 3d 20 | 74 65 73 74 65 72 72 5b |r[2] := |testerr[|
|00001dc0| 32 5d 20 2b 20 28 4c 4f | 47 4d 49 4e 20 2d 20 6c |2] + (LO|GMIN - l|
|00001dd0| 6f 67 65 72 72 5b 69 5d | 29 3b 0d 20 20 20 20 20 |ogerr[i]|);. |
|00001de0| 20 65 6e 64 20 3b 0d 20 | 20 20 74 65 73 74 65 72 | end ;. | tester|
|00001df0| 72 5b 32 5d 20 3a 3d 20 | 74 65 73 74 65 72 72 5b |r[2] := |testerr[|
|00001e00| 32 5d 2f 35 2e 30 20 3b | 0d 0d 44 72 61 77 41 74 |2]/5.0 ;|..DrawAt|
|00001e10| 28 35 2c 32 34 2c 27 23 | 31 62 3a 20 64 69 76 69 |(5,24,'#|1b: divi|
|00001e20| 73 69 6f 6e 20 61 76 65 | 72 61 67 65 20 20 20 27 |sion ave|rage '|
|00001e30| 29 3b 0d 20 20 20 66 2e | 44 69 67 69 74 73 20 3a |);. f.|Digits :|
|00001e40| 3d 20 31 3b 0d 20 20 20 | 7a 20 3a 3d 20 32 36 3b |= 1;. |z := 26;|
|00001e50| 0d 20 20 20 66 6f 72 20 | 69 20 3a 3d 20 31 20 74 |. for |i := 1 t|
|00001e60| 6f 20 35 20 64 6f 20 0d | 20 20 20 20 20 62 65 67 |o 5 do .| beg|
|00001e70| 69 6e 0d 20 20 20 20 20 | 20 20 7a 20 3a 3d 20 7a |in. | z := z|
|00001e80| 20 2b 20 35 3b 0d 20 20 | 20 20 20 20 20 4e 75 6d | + 5;. | Num|
|00001e90| 32 53 74 72 28 66 2c 6c | 6f 67 65 72 72 5b 69 5d |2Str(f,l|ogerr[i]|
|00001ea0| 2c 73 29 3b 0d 20 20 20 | 20 20 20 20 44 72 61 77 |,s);. | Draw|
|00001eb0| 41 74 28 7a 2c 32 34 2c | 73 29 3b 0d 20 20 20 20 |At(z,24,|s);. |
|00001ec0| 20 65 6e 64 3b 0d 20 20 | 20 66 2e 44 69 67 69 74 | end;. | f.Digit|
|00001ed0| 73 20 3a 3d 20 32 3b 0d | 20 20 20 4e 75 6d 32 53 |s := 2;.| Num2S|
|00001ee0| 74 72 28 66 2c 74 65 73 | 74 65 72 72 5b 32 5d 2c |tr(f,tes|terr[2],|
|00001ef0| 73 29 3b 0d 20 20 20 44 | 72 61 77 41 74 28 35 39 |s);. D|rawAt(59|
|00001f00| 2c 32 34 2c 73 29 3b 0d | 0d 65 6e 64 3b 0d 0d 0d |,24,s);.|.end;...|
|00001f10| 70 72 6f 63 65 64 75 72 | 65 20 74 72 69 67 20 3b |procedur|e trig ;|
|00001f20| 20 20 20 7b 54 45 53 54 | 20 32 3a 20 66 69 72 73 | {TEST| 2: firs|
|00001f30| 74 2c 20 65 72 72 6f 72 | 73 20 69 6e 20 73 6f 6d |t, error|s in som|
|00001f40| 65 20 73 69 6e 65 20 69 | 64 65 6e 74 69 74 69 65 |e sine i|dentitie|
|00001f50| 73 20 7d 0d 76 61 72 0d | 20 20 20 69 2c 20 6a 2c |s }.var.| i, j,|
|00001f60| 20 6b 2c 20 6c 20 20 20 | 20 20 20 20 20 3a 20 69 | k, l | : i|
|00001f70| 6e 74 65 67 65 72 20 3b | 0d 62 65 67 69 6e 0d 20 |nteger ;|.begin. |
|00001f80| 20 20 66 6f 72 20 6c 20 | 3a 3d 20 31 20 74 6f 20 | for l |:= 1 to |
|00001f90| 35 20 64 6f 20 6c 6f 67 | 65 72 72 5b 6c 5d 20 3a |5 do log|err[l] :|
|00001fa0| 3d 20 30 2e 30 20 3b 0d | 20 20 20 66 6f 72 20 6a |= 0.0 ;.| for j|
|00001fb0| 20 3a 3d 20 31 20 74 6f | 20 49 54 45 52 54 52 49 | := 1 to| ITERTRI|
|00001fc0| 47 20 64 6f 0d 20 20 20 | 20 20 20 62 65 67 69 6e |G do. | begin|
|00001fd0| 0d 20 20 20 20 20 20 70 | 20 3a 3d 20 6a 20 2d 20 |. p| := j - |
|00001fe0| 31 20 3b 0d 20 20 20 20 | 20 20 74 68 5b 31 5d 20 |1 ;. | th[1] |
|00001ff0| 3a 3d 20 50 49 2f 31 32 | 2e 30 20 2b 20 70 2a 50 |:= PI/12|.0 + p*P|
|00002000| 49 20 3b 0d 20 20 20 20 | 20 20 74 68 5b 32 5d 20 |I ;. | th[2] |
|00002010| 3a 3d 20 50 49 2f 36 2e | 30 20 2b 20 70 2a 50 49 |:= PI/6.|0 + p*PI|
|00002020| 20 3b 0d 20 20 20 20 20 | 20 74 68 5b 33 5d 20 3a | ;. | th[3] :|
|00002030| 3d 20 50 49 2f 34 2e 30 | 20 2b 20 70 2a 50 49 20 |= PI/4.0| + p*PI |
|00002040| 3b 0d 20 20 20 20 20 20 | 74 68 5b 34 5d 20 3a 3d |;. |th[4] :=|
|00002050| 20 50 49 2f 33 2e 30 20 | 2b 20 70 2a 50 49 20 3b | PI/3.0 |+ p*PI ;|
|00002060| 0d 20 20 20 20 20 20 74 | 68 5b 35 5d 20 3a 3d 20 |. t|h[5] := |
|00002070| 35 2e 30 2a 50 49 2f 31 | 32 2e 30 20 2b 20 70 2a |5.0*PI/1|2.0 + p*|
|00002080| 50 49 20 3b 0d 20 20 20 | 20 20 20 76 61 6c 5b 31 |PI ;. | val[1|
|00002090| 5d 20 3a 3d 20 6f 73 67 | 6e 28 6a 2d 31 29 2a 52 |] := osg|n(j-1)*R|
|000020a0| 4f 4f 54 32 2a 28 52 4f | 4f 54 33 2d 31 2e 30 29 |OOT2*(RO|OT3-1.0)|
|000020b0| 2a 30 2e 32 35 20 3b 0d | 20 20 20 20 20 20 76 61 |*0.25 ;.| va|
|000020c0| 6c 5b 32 5d 20 3a 3d 20 | 6f 73 67 6e 28 6a 2d 31 |l[2] := |osgn(j-1|
|000020d0| 29 2a 30 2e 35 20 3b 0d | 20 20 20 20 20 20 76 61 |)*0.5 ;.| va|
|000020e0| 6c 5b 33 5d 20 3a 3d 20 | 6f 73 67 6e 28 6a 2d 31 |l[3] := |osgn(j-1|
|000020f0| 29 2a 53 51 52 54 4f 32 | 20 3b 0d 20 20 20 20 20 |)*SQRTO2| ;. |
|00002100| 20 76 61 6c 5b 34 5d 20 | 3a 3d 20 6f 73 67 6e 28 | val[4] |:= osgn(|
|00002110| 6a 2d 31 29 2a 30 2e 35 | 2a 52 4f 4f 54 33 20 3b |j-1)*0.5|*ROOT3 ;|
|00002120| 0d 20 20 20 20 20 20 76 | 61 6c 5b 35 5d 20 3a 3d |. v|al[5] :=|
|00002130| 20 6f 73 67 6e 28 6a 2d | 31 29 2a 52 4f 4f 54 32 | osgn(j-|1)*ROOT2|
|00002140| 2a 28 52 4f 4f 54 33 2b | 31 2e 30 29 2a 30 2e 32 |*(ROOT3+|1.0)*0.2|
|00002150| 35 20 3b 0d 20 20 20 20 | 20 20 66 6f 72 20 6c 20 |5 ;. | for l |
|00002160| 3a 3d 20 31 20 74 6f 20 | 35 20 64 6f 20 66 75 6e |:= 1 to |5 do fun|
|00002170| 63 74 5b 6c 5d 20 3a 3d | 20 73 69 6e 28 74 68 5b |ct[l] :=| sin(th[|
|00002180| 6c 5d 29 20 3b 0d 20 20 | 20 20 20 20 66 6f 72 20 |l]) ;. | for |
|00002190| 6c 20 3a 3d 20 31 20 74 | 6f 20 35 20 64 6f 0d 20 |l := 1 t|o 5 do. |
|000021a0| 20 20 20 20 20 20 20 20 | 62 65 67 69 6e 0d 20 20 | |begin. |
|000021b0| 20 20 20 20 20 20 20 65 | 72 72 5b 6c 5d 20 3a 3d | e|rr[l] :=|
|000021c0| 20 61 62 73 28 31 2e 30 | 20 2d 20 76 61 6c 5b 6c | abs(1.0| - val[l|
|000021d0| 5d 2f 66 75 6e 63 74 5b | 6c 5d 29 20 3b 0d 20 20 |]/funct[|l]) ;. |
|000021e0| 20 20 20 20 20 20 20 69 | 66 20 65 72 72 5b 6c 5d | i|f err[l]|
|000021f0| 20 3e 20 4d 49 4e 45 52 | 52 20 74 68 65 6e 20 6c | > MINER|R then l|
|00002200| 6f 67 65 72 72 5b 6c 5d | 20 3a 3d 20 6c 6f 67 65 |ogerr[l]| := loge|
|00002210| 72 72 5b 6c 5d 20 2d 20 | 6c 6e 28 65 72 72 5b 6c |rr[l] - |ln(err[l|
|00002220| 5d 29 20 2a 20 4c 4f 47 | 31 30 45 0d 20 20 20 20 |]) * LOG|10E. |
|00002230| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002240| 20 20 20 20 20 20 20 20 | 65 6c 73 65 20 6c 6f 67 | |else log|
|00002250| 65 72 72 5b 6c 5d 20 3a | 3d 20 6c 6f 67 65 72 72 |err[l] :|= logerr|
|00002260| 5b 6c 5d 20 2b 20 4c 4f | 47 4d 49 4e 20 3b 0d 20 |[l] + LO|GMIN ;. |
|00002270| 20 20 20 20 20 20 20 20 | 65 6e 64 3b 0d 20 20 20 | |end;. |
|00002280| 20 20 20 65 6e 64 3b 0d | 20 20 20 66 6f 72 20 6c | end;.| for l|
|00002290| 20 3a 3d 20 31 20 74 6f | 20 35 20 64 6f 20 6c 6f | := 1 to| 5 do lo|
|000022a0| 67 65 72 72 5b 6c 5d 20 | 3a 3d 20 6c 6f 67 65 72 |gerr[l] |:= loger|
|000022b0| 72 5b 6c 5d 20 2f 20 49 | 54 45 52 54 52 49 47 20 |r[l] / I|TERTRIG |
|000022c0| 3b 0d 20 20 20 66 6f 72 | 20 6c 20 3a 3d 20 31 20 |;. for| l := 1 |
|000022d0| 74 6f 20 35 20 64 6f 20 | 74 65 73 74 65 72 72 5b |to 5 do |testerr[|
|000022e0| 33 5d 20 3a 3d 20 74 65 | 73 74 65 72 72 5b 33 5d |3] := te|sterr[3]|
|000022f0| 20 2b 20 28 4c 4f 47 4d | 49 4e 20 2d 20 6c 6f 67 | + (LOGM|IN - log|
|00002300| 65 72 72 5b 6c 5d 29 3b | 0d 20 20 20 74 65 73 74 |err[l]);|. test|
|00002310| 65 72 72 5b 33 5d 20 3a | 3d 20 74 65 73 74 65 72 |err[3] :|= tester|
|00002320| 72 5b 33 5d 2f 35 2e 30 | 20 3b 0d 0d 44 72 61 77 |r[3]/5.0| ;..Draw|
|00002330| 41 74 28 35 2c 32 35 2c | 27 23 32 61 3a 20 73 69 |At(5,25,|'#2a: si|
|00002340| 6e 65 20 66 75 6e 63 74 | 69 6f 6e 20 20 20 20 20 |ne funct|ion |
|00002350| 20 27 29 3b 0d 20 20 20 | 66 2e 44 69 67 69 74 73 | ');. |f.Digits|
|00002360| 20 3a 3d 20 31 3b 0d 20 | 20 20 7a 20 3a 3d 20 32 | := 1;. | z := 2|
|00002370| 36 3b 0d 20 20 20 66 6f | 72 20 69 20 3a 3d 20 31 |6;. fo|r i := 1|
|00002380| 20 74 6f 20 35 20 64 6f | 20 0d 20 20 20 20 20 62 | to 5 do| . b|
|00002390| 65 67 69 6e 0d 20 20 20 | 20 20 20 20 7a 20 3a 3d |egin. | z :=|
|000023a0| 20 7a 20 2b 20 35 3b 0d | 20 20 20 20 20 20 20 4e | z + 5;.| N|
|000023b0| 75 6d 32 53 74 72 28 66 | 2c 6c 6f 67 65 72 72 5b |um2Str(f|,logerr[|
|000023c0| 69 5d 2c 73 29 3b 0d 20 | 20 20 20 20 20 20 44 72 |i],s);. | Dr|
|000023d0| 61 77 41 74 28 7a 2c 32 | 35 2c 73 29 3b 0d 20 20 |awAt(z,2|5,s);. |
|000023e0| 20 20 20 65 6e 64 3b 0d | 20 20 20 66 2e 44 69 67 | end;.| f.Dig|
|000023f0| 69 74 73 20 3a 3d 20 32 | 3b 0d 20 20 20 4e 75 6d |its := 2|;. Num|
|00002400| 32 53 74 72 28 66 2c 74 | 65 73 74 65 72 72 5b 33 |2Str(f,t|esterr[3|
|00002410| 5d 2c 73 29 3b 0d 20 20 | 20 44 72 61 77 41 74 28 |],s);. | DrawAt(|
|00002420| 35 39 2c 32 35 2c 73 29 | 3b 0d 0d 7b 20 63 6f 6d |59,25,s)|;..{ com|
|00002430| 70 61 72 65 20 73 69 6e | 28 29 2f 63 6f 73 28 29 |pare sin|()/cos()|
|00002440| 20 77 69 74 68 20 65 78 | 61 63 74 20 76 61 6c 75 | with ex|act valu|
|00002450| 65 73 20 66 6f 72 20 74 | 61 6e 28 29 20 7d 0d 20 |es for t|an() }. |
|00002460| 20 20 66 6f 72 20 6c 20 | 3a 3d 20 31 20 74 6f 20 | for l |:= 1 to |
|00002470| 35 20 64 6f 20 6c 6f 67 | 65 72 72 5b 6c 5d 20 3a |5 do log|err[l] :|
|00002480| 3d 20 30 2e 30 20 3b 0d | 20 20 20 66 6f 72 20 6a |= 0.0 ;.| for j|
|00002490| 20 3a 3d 20 31 20 74 6f | 20 49 54 45 52 54 52 49 | := 1 to| ITERTRI|
|000024a0| 47 20 64 6f 0d 20 20 20 | 20 20 20 62 65 67 69 6e |G do. | begin|
|000024b0| 0d 20 20 20 20 20 20 70 | 20 3a 3d 20 6a 20 2d 20 |. p| := j - |
|000024c0| 31 20 3b 0d 20 20 20 20 | 20 20 74 68 5b 31 5d 20 |1 ;. | th[1] |
|000024d0| 3a 3d 20 50 49 20 2f 20 | 31 32 2e 30 20 2b 20 28 |:= PI / |12.0 + (|
|000024e0| 6a 2d 31 29 2a 50 49 20 | 3b 0d 20 20 20 20 20 20 |j-1)*PI |;. |
|000024f0| 74 68 5b 32 5d 20 3a 3d | 20 50 49 20 2f 20 36 2e |th[2] :=| PI / 6.|
|00002500| 30 20 2b 20 28 6a 2d 31 | 29 2a 50 49 20 3b 0d 20 |0 + (j-1|)*PI ;. |
|00002510| 20 20 20 20 20 74 68 5b | 33 5d 20 3a 3d 20 50 49 | th[|3] := PI|
|00002520| 20 2f 20 34 2e 30 20 2b | 20 28 6a 2d 31 29 2a 50 | / 4.0 +| (j-1)*P|
|00002530| 49 20 3b 0d 20 20 20 20 | 20 20 74 68 5b 34 5d 20 |I ;. | th[4] |
|00002540| 3a 3d 20 50 49 20 2f 20 | 33 2e 30 20 2b 20 28 6a |:= PI / |3.0 + (j|
|00002550| 2d 31 29 2a 50 49 20 3b | 0d 20 20 20 20 20 20 74 |-1)*PI ;|. t|
|00002560| 68 5b 35 5d 20 3a 3d 20 | 35 2e 30 20 2a 20 50 49 |h[5] := |5.0 * PI|
|00002570| 20 2f 20 31 32 2e 30 20 | 2b 20 28 6a 2d 31 29 2a | / 12.0 |+ (j-1)*|
|00002580| 50 49 20 3b 0d 20 20 20 | 20 20 20 76 61 6c 5b 31 |PI ;. | val[1|
|00002590| 5d 20 3a 3d 20 32 2e 30 | 20 2d 20 52 4f 4f 54 33 |] := 2.0| - ROOT3|
|000025a0| 20 3b 0d 20 20 20 20 20 | 20 76 61 6c 5b 32 5d 20 | ;. | val[2] |
|000025b0| 3a 3d 20 31 2e 30 20 2f | 20 52 4f 4f 54 33 20 3b |:= 1.0 /| ROOT3 ;|
|000025c0| 0d 20 20 20 20 20 20 76 | 61 6c 5b 33 5d 20 3a 3d |. v|al[3] :=|
|000025d0| 20 31 2e 30 30 20 3b 0d | 20 20 20 20 20 20 76 61 | 1.00 ;.| va|
|000025e0| 6c 5b 34 5d 20 3a 3d 20 | 52 4f 4f 54 33 20 3b 0d |l[4] := |ROOT3 ;.|
|000025f0| 20 20 20 20 20 20 76 61 | 6c 5b 35 5d 20 3a 3d 20 | va|l[5] := |
|00002600| 32 2e 30 20 2b 20 52 4f | 4f 54 33 20 3b 0d 20 20 |2.0 + RO|OT3 ;. |
|00002610| 20 20 20 20 66 6f 72 20 | 6c 20 3a 3d 20 31 20 74 | for |l := 1 t|
|00002620| 6f 20 35 20 64 6f 20 66 | 75 6e 63 74 5b 6c 5d 20 |o 5 do f|unct[l] |
|00002630| 3a 3d 20 73 69 6e 28 74 | 68 5b 6c 5d 29 2f 63 6f |:= sin(t|h[l])/co|
|00002640| 73 28 74 68 5b 6c 5d 29 | 20 3b 0d 20 20 20 20 20 |s(th[l])| ;. |
|00002650| 20 66 6f 72 20 6c 20 3a | 3d 20 31 20 74 6f 20 35 | for l :|= 1 to 5|
|00002660| 20 64 6f 0d 20 20 20 20 | 20 20 20 20 20 62 65 67 | do. | beg|
|00002670| 69 6e 0d 20 20 20 20 20 | 20 20 20 20 65 72 72 5b |in. | err[|
|00002680| 6c 5d 20 3a 3d 20 61 62 | 73 28 31 2e 30 20 2d 20 |l] := ab|s(1.0 - |
|00002690| 76 61 6c 5b 6c 5d 2f 66 | 75 6e 63 74 5b 6c 5d 29 |val[l]/f|unct[l])|
|000026a0| 20 3b 0d 20 20 20 20 20 | 20 20 20 20 69 66 20 65 | ;. | if e|
|000026b0| 72 72 5b 6c 5d 20 3e 20 | 4d 49 4e 45 52 52 20 74 |rr[l] > |MINERR t|
|000026c0| 68 65 6e 20 6c 6f 67 65 | 72 72 5b 6c 5d 20 3a 3d |hen loge|rr[l] :=|
|000026d0| 20 6c 6f 67 65 72 72 5b | 6c 5d 20 2d 20 6c 6e 28 | logerr[|l] - ln(|
|000026e0| 65 72 72 5b 6c 5d 29 20 | 2a 20 4c 4f 47 31 30 45 |err[l]) |* LOG10E|
|000026f0| 0d 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. | |
|00002700| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 65 6c 73 | | els|
|00002710| 65 20 6c 6f 67 65 72 72 | 5b 6c 5d 20 3a 3d 20 6c |e logerr|[l] := l|
|00002720| 6f 67 65 72 72 5b 6c 5d | 20 2b 20 4c 4f 47 4d 49 |ogerr[l]| + LOGMI|
|00002730| 4e 20 3b 0d 20 20 20 20 | 20 20 20 20 20 65 6e 64 |N ;. | end|
|00002740| 20 20 3b 0d 20 20 20 20 | 20 20 65 6e 64 3b 0d 20 | ;. | end;. |
|00002750| 20 20 66 6f 72 20 6c 20 | 3a 3d 20 31 20 74 6f 20 | for l |:= 1 to |
|00002760| 35 20 64 6f 20 6c 6f 67 | 65 72 72 5b 6c 5d 20 3a |5 do log|err[l] :|
|00002770| 3d 20 6c 6f 67 65 72 72 | 5b 6c 5d 20 2f 20 49 54 |= logerr|[l] / IT|
|00002780| 45 52 54 52 49 47 20 3b | 0d 20 20 20 66 6f 72 20 |ERTRIG ;|. for |
|00002790| 6c 20 3a 3d 20 31 20 74 | 6f 20 35 20 64 6f 0d 20 |l := 1 t|o 5 do. |
|000027a0| 20 20 20 20 20 74 65 73 | 74 65 72 72 5b 34 5d 20 | tes|terr[4] |
|000027b0| 3a 3d 20 74 65 73 74 65 | 72 72 5b 34 5d 20 2b 20 |:= teste|rr[4] + |
|000027c0| 28 4c 4f 47 4d 49 4e 20 | 2d 20 6c 6f 67 65 72 72 |(LOGMIN |- logerr|
|000027d0| 5b 6c 5d 29 20 3b 0d 20 | 20 20 74 65 73 74 65 72 |[l]) ;. | tester|
|000027e0| 72 5b 34 5d 20 3a 3d 20 | 74 65 73 74 65 72 72 5b |r[4] := |testerr[|
|000027f0| 34 5d 2f 35 2e 30 20 3b | 0d 0d 44 72 61 77 41 74 |4]/5.0 ;|..DrawAt|
|00002800| 28 35 2c 32 36 2c 27 23 | 32 62 3a 20 74 61 6e 67 |(5,26,'#|2b: tang|
|00002810| 65 6e 74 7c 73 69 6e 28 | 29 2f 63 6f 73 28 29 27 |ent|sin(|)/cos()'|
|00002820| 29 3b 0d 20 20 20 66 2e | 44 69 67 69 74 73 20 3a |);. f.|Digits :|
|00002830| 3d 20 31 3b 0d 20 20 20 | 7a 20 3a 3d 20 32 36 3b |= 1;. |z := 26;|
|00002840| 0d 20 20 20 66 6f 72 20 | 69 20 3a 3d 20 31 20 74 |. for |i := 1 t|
|00002850| 6f 20 35 20 64 6f 20 0d | 20 20 20 20 20 62 65 67 |o 5 do .| beg|
|00002860| 69 6e 0d 20 20 20 20 20 | 20 20 7a 20 3a 3d 20 7a |in. | z := z|
|00002870| 20 2b 20 35 3b 0d 20 20 | 20 20 20 20 20 4e 75 6d | + 5;. | Num|
|00002880| 32 53 74 72 28 66 2c 6c | 6f 67 65 72 72 5b 69 5d |2Str(f,l|ogerr[i]|
|00002890| 2c 73 29 3b 0d 20 20 20 | 20 20 20 20 44 72 61 77 |,s);. | Draw|
|000028a0| 41 74 28 7a 2c 32 36 2c | 73 29 3b 0d 20 20 20 20 |At(z,26,|s);. |
|000028b0| 20 65 6e 64 3b 0d 20 20 | 20 66 2e 44 69 67 69 74 | end;. | f.Digit|
|000028c0| 73 20 3a 3d 20 32 3b 0d | 20 20 20 4e 75 6d 32 53 |s := 2;.| Num2S|
|000028d0| 74 72 28 66 2c 74 65 73 | 74 65 72 72 5b 34 5d 2c |tr(f,tes|terr[4],|
|000028e0| 73 29 3b 0d 20 20 20 44 | 72 61 77 41 74 28 35 39 |s);. D|rawAt(59|
|000028f0| 2c 32 36 2c 73 29 3b 0d | 0d 0d 7b 20 63 6f 6d 70 |,26,s);.|..{ comp|
|00002900| 61 72 65 20 61 72 63 74 | 61 6e 28 29 20 77 69 74 |are arct|an() wit|
|00002910| 68 20 74 61 6e 28 29 20 | 66 6f 72 20 63 6f 6e 73 |h tan() |for cons|
|00002920| 69 73 74 65 6e 63 79 20 | 7d 0d 20 20 20 66 6f 72 |istency |}. for|
|00002930| 20 6c 20 3a 3d 20 31 20 | 74 6f 20 35 20 64 6f 20 | l := 1 |to 5 do |
|00002940| 6c 6f 67 65 72 72 5b 6c | 5d 20 3a 3d 20 30 2e 30 |logerr[l|] := 0.0|
|00002950| 20 3b 0d 20 20 20 66 6f | 72 20 6a 20 3a 3d 20 31 | ;. fo|r j := 1|
|00002960| 20 74 6f 20 49 54 45 52 | 20 64 6f 0d 20 20 20 20 | to ITER| do. |
|00002970| 20 20 62 65 67 69 6e 0d | 20 20 20 20 20 20 66 6f | begin.| fo|
|00002980| 72 20 6c 20 3a 3d 20 31 | 20 74 6f 20 35 20 64 6f |r l := 1| to 5 do|
|00002990| 20 74 68 5b 6c 5d 20 3a | 3d 20 28 35 2a 6a 2b 6c | th[l] :|= (5*j+l|
|000029a0| 2d 35 29 2a 50 49 4f 32 | 2f 28 35 2a 49 54 45 52 |-5)*PIO2|/(5*ITER|
|000029b0| 2b 31 29 20 3b 0d 20 20 | 20 20 20 20 66 6f 72 20 |+1) ;. | for |
|000029c0| 6c 20 3a 3d 20 31 20 74 | 6f 20 35 20 64 6f 20 76 |l := 1 t|o 5 do v|
|000029d0| 61 6c 5b 6c 5d 20 3a 3d | 20 73 69 6e 28 74 68 5b |al[l] :=| sin(th[|
|000029e0| 6c 5d 29 2f 63 6f 73 28 | 74 68 5b 6c 5d 29 20 3b |l])/cos(|th[l]) ;|
|000029f0| 0d 20 20 20 20 20 20 66 | 6f 72 20 6c 20 3a 3d 20 |. f|or l := |
|00002a00| 31 20 74 6f 20 35 20 64 | 6f 20 66 75 6e 63 74 5b |1 to 5 d|o funct[|
|00002a10| 6c 5d 20 3a 3d 20 61 72 | 63 74 61 6e 28 76 61 6c |l] := ar|ctan(val|
|00002a20| 5b 6c 5d 29 20 3b 0d 20 | 20 20 20 20 20 66 6f 72 |[l]) ;. | for|
|00002a30| 20 6c 20 3a 3d 20 31 20 | 74 6f 20 35 20 64 6f 0d | l := 1 |to 5 do.|
|00002a40| 20 20 20 20 20 20 20 20 | 20 62 65 67 69 6e 0d 20 | | begin. |
|00002a50| 20 20 20 20 20 20 20 20 | 65 72 72 5b 6c 5d 20 3a | |err[l] :|
|00002a60| 3d 20 61 62 73 28 31 2e | 30 20 2d 20 74 68 5b 6c |= abs(1.|0 - th[l|
|00002a70| 5d 2f 66 75 6e 63 74 5b | 6c 5d 29 20 3b 0d 20 20 |]/funct[|l]) ;. |
|00002a80| 20 20 20 20 20 20 20 69 | 66 20 65 72 72 5b 6c 5d | i|f err[l]|
|00002a90| 20 3e 20 4d 49 4e 45 52 | 52 20 74 68 65 6e 20 6c | > MINER|R then l|
|00002aa0| 6f 67 65 72 72 5b 6c 5d | 20 3a 3d 20 6c 6f 67 65 |ogerr[l]| := loge|
|00002ab0| 72 72 5b 6c 5d 20 2d 20 | 6c 6e 28 65 72 72 5b 6c |rr[l] - |ln(err[l|
|00002ac0| 5d 29 20 2a 20 4c 4f 47 | 31 30 45 0d 20 20 20 20 |]) * LOG|10E. |
|00002ad0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002ae0| 20 20 20 20 20 20 20 20 | 65 6c 73 65 20 6c 6f 67 | |else log|
|00002af0| 65 72 72 5b 6c 5d 20 3a | 3d 20 6c 6f 67 65 72 72 |err[l] :|= logerr|
|00002b00| 5b 6c 5d 20 2b 20 4c 4f | 47 4d 49 4e 20 3b 0d 20 |[l] + LO|GMIN ;. |
|00002b10| 20 20 20 20 20 20 20 20 | 65 6e 64 3b 0d 20 20 20 | |end;. |
|00002b20| 20 20 20 65 6e 64 3b 0d | 20 20 20 66 6f 72 20 6c | end;.| for l|
|00002b30| 20 3a 3d 20 31 20 74 6f | 20 35 20 64 6f 20 6c 6f | := 1 to| 5 do lo|
|00002b40| 67 65 72 72 5b 6c 5d 20 | 3a 3d 20 6c 6f 67 65 72 |gerr[l] |:= loger|
|00002b50| 72 5b 6c 5d 20 2f 20 49 | 54 45 52 20 3b 0d 20 20 |r[l] / I|TER ;. |
|00002b60| 20 66 6f 72 20 6c 20 3a | 3d 20 31 20 74 6f 20 35 | for l :|= 1 to 5|
|00002b70| 20 64 6f 0d 20 20 20 20 | 20 20 74 65 73 74 65 72 | do. | tester|
|00002b80| 72 5b 35 5d 20 3a 3d 20 | 74 65 73 74 65 72 72 5b |r[5] := |testerr[|
|00002b90| 35 5d 20 2b 20 28 4c 4f | 47 4d 49 4e 20 2d 20 6c |5] + (LO|GMIN - l|
|00002ba0| 6f 67 65 72 72 5b 6c 5d | 29 3b 0d 20 20 20 74 65 |ogerr[l]|);. te|
|00002bb0| 73 74 65 72 72 5b 35 5d | 20 3a 3d 20 74 65 73 74 |sterr[5]| := test|
|00002bc0| 65 72 72 5b 35 5d 2f 35 | 2e 30 20 3b 0d 0d 44 72 |err[5]/5|.0 ;..Dr|
|00002bd0| 61 77 41 74 28 35 2c 32 | 37 2c 27 23 32 63 3a 20 |awAt(5,2|7,'#2c: |
|00002be0| 61 72 63 74 61 6e 20 66 | 75 6e 63 74 69 6f 6e 20 |arctan f|unction |
|00002bf0| 20 20 20 27 29 3b 0d 20 | 20 20 66 2e 44 69 67 69 | ');. | f.Digi|
|00002c00| 74 73 20 3a 3d 20 31 3b | 0d 20 20 20 7a 20 3a 3d |ts := 1;|. z :=|
|00002c10| 20 32 36 3b 0d 20 20 20 | 66 6f 72 20 69 20 3a 3d | 26;. |for i :=|
|00002c20| 20 31 20 74 6f 20 35 20 | 64 6f 20 0d 20 20 20 20 | 1 to 5 |do . |
|00002c30| 20 62 65 67 69 6e 0d 20 | 20 20 20 20 20 20 7a 20 | begin. | z |
|00002c40| 3a 3d 20 7a 20 2b 20 35 | 3b 0d 20 20 20 20 20 20 |:= z + 5|;. |
|00002c50| 20 4e 75 6d 32 53 74 72 | 28 66 2c 6c 6f 67 65 72 | Num2Str|(f,loger|
|00002c60| 72 5b 69 5d 2c 73 29 3b | 0d 20 20 20 20 20 20 20 |r[i],s);|. |
|00002c70| 44 72 61 77 41 74 28 7a | 2c 32 37 2c 73 29 3b 0d |DrawAt(z|,27,s);.|
|00002c80| 20 20 20 20 20 65 6e 64 | 3b 0d 20 20 20 66 2e 44 | end|;. f.D|
|00002c90| 69 67 69 74 73 20 3a 3d | 20 32 3b 0d 20 20 20 4e |igits :=| 2;. N|
|00002ca0| 75 6d 32 53 74 72 28 66 | 2c 74 65 73 74 65 72 72 |um2Str(f|,testerr|
|00002cb0| 5b 35 5d 2c 73 29 3b 0d | 20 20 20 44 72 61 77 41 |[5],s);.| DrawA|
|00002cc0| 74 28 35 39 2c 32 37 2c | 73 29 3b 0d 0d 65 6e 64 |t(59,27,|s);..end|
|00002cd0| 3b 0d 0d 0d 70 72 6f 63 | 65 64 75 72 65 20 74 72 |;...proc|edure tr|
|00002ce0| 61 6e 73 63 20 3b 20 20 | 20 7b 54 45 53 54 20 33 |ansc ; | {TEST 3|
|00002cf0| 3a 20 6c 6e 28 29 20 61 | 6e 64 20 65 78 70 28 29 |: ln() a|nd exp()|
|00002d00| 20 66 6f 72 20 63 6f 6e | 73 69 73 74 65 6e 63 79 | for con|sistency|
|00002d10| 7d 0d 76 61 72 0d 20 20 | 20 69 2c 20 6a 2c 20 6c |}.var. | i, j, l|
|00002d20| 20 20 20 20 20 20 20 20 | 3a 20 69 6e 74 65 67 65 | |: intege|
|00002d30| 72 20 3b 0d 62 65 67 69 | 6e 0d 20 20 20 66 6f 72 |r ;.begi|n. for|
|00002d40| 20 6c 20 3a 3d 20 31 20 | 74 6f 20 35 20 64 6f 20 | l := 1 |to 5 do |
|00002d50| 6c 6f 67 65 72 72 5b 6c | 5d 20 3a 3d 20 30 2e 30 |logerr[l|] := 0.0|
|00002d60| 20 3b 0d 20 20 20 66 6f | 72 20 6a 20 3a 3d 20 31 | ;. fo|r j := 1|
|00002d70| 20 74 6f 20 49 54 45 52 | 20 64 6f 0d 20 20 20 20 | to ITER| do. |
|00002d80| 20 20 62 65 67 69 6e 0d | 20 20 20 20 20 20 66 6f | begin.| fo|
|00002d90| 72 20 6c 20 3a 3d 20 31 | 20 74 6f 20 35 20 64 6f |r l := 1| to 5 do|
|00002da0| 20 74 68 5b 6c 5d 20 3a | 3d 20 28 35 2a 6a 2b 6c | th[l] :|= (5*j+l|
|00002db0| 2d 35 29 2a 53 54 45 50 | 20 3b 0d 20 20 20 20 20 |-5)*STEP| ;. |
|00002dc0| 20 66 6f 72 20 6c 20 3a | 3d 20 31 20 74 6f 20 35 | for l :|= 1 to 5|
|00002dd0| 20 64 6f 20 76 61 6c 5b | 6c 5d 20 3a 3d 20 65 78 | do val[|l] := ex|
|00002de0| 70 28 74 68 5b 6c 5d 29 | 20 3b 0d 20 20 20 20 20 |p(th[l])| ;. |
|00002df0| 20 66 6f 72 20 6c 20 3a | 3d 20 31 20 74 6f 20 35 | for l :|= 1 to 5|
|00002e00| 20 64 6f 20 66 75 6e 63 | 74 5b 6c 5d 20 3a 3d 20 | do func|t[l] := |
|00002e10| 6c 6e 28 76 61 6c 5b 6c | 5d 29 20 3b 0d 0d 20 20 |ln(val[l|]) ;.. |
|00002e20| 20 20 20 20 66 6f 72 20 | 6c 20 3a 3d 20 31 20 74 | for |l := 1 t|
|00002e30| 6f 20 35 20 64 6f 0d 20 | 20 20 20 20 20 20 20 20 |o 5 do. | |
|00002e40| 62 65 67 69 6e 0d 20 20 | 20 20 20 20 20 20 20 65 |begin. | e|
|00002e50| 72 72 5b 6c 5d 20 3a 3d | 20 61 62 73 28 31 2e 30 |rr[l] :=| abs(1.0|
|00002e60| 20 2d 20 74 68 5b 6c 5d | 2f 66 75 6e 63 74 5b 6c | - th[l]|/funct[l|
|00002e70| 5d 29 20 3b 0d 20 20 20 | 20 20 20 20 20 20 69 66 |]) ;. | if|
|00002e80| 20 65 72 72 5b 6c 5d 20 | 3e 20 4d 49 4e 45 52 52 | err[l] |> MINERR|
|00002e90| 20 74 68 65 6e 20 6c 6f | 67 65 72 72 5b 6c 5d 20 | then lo|gerr[l] |
|00002ea0| 3a 3d 20 6c 6f 67 65 72 | 72 5b 6c 5d 20 2d 20 6c |:= loger|r[l] - l|
|00002eb0| 6e 28 65 72 72 5b 6c 5d | 29 20 2a 20 4c 4f 47 31 |n(err[l]|) * LOG1|
|00002ec0| 30 45 0d 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |0E. | |
|00002ed0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 65 | | e|
|00002ee0| 6c 73 65 20 6c 6f 67 65 | 72 72 5b 6c 5d 20 3a 3d |lse loge|rr[l] :=|
|00002ef0| 20 6c 6f 67 65 72 72 5b | 6c 5d 20 2b 20 4c 4f 47 | logerr[|l] + LOG|
|00002f00| 4d 49 4e 3b 0d 20 20 20 | 20 20 20 20 20 20 65 6e |MIN;. | en|
|00002f10| 64 3b 0d 20 20 20 20 20 | 20 65 6e 64 3b 0d 20 20 |d;. | end;. |
|00002f20| 20 66 6f 72 20 6c 20 3a | 3d 20 31 20 74 6f 20 35 | for l :|= 1 to 5|
|00002f30| 20 64 6f 20 6c 6f 67 65 | 72 72 5b 6c 5d 20 3a 3d | do loge|rr[l] :=|
|00002f40| 20 6c 6f 67 65 72 72 5b | 6c 5d 20 2f 20 49 54 45 | logerr[|l] / ITE|
|00002f50| 52 20 3b 0d 20 20 20 66 | 6f 72 20 6c 20 3a 3d 20 |R ;. f|or l := |
|00002f60| 31 20 74 6f 20 35 20 64 | 6f 0d 20 20 20 20 20 20 |1 to 5 d|o. |
|00002f70| 74 65 73 74 65 72 72 5b | 36 5d 20 3a 3d 20 74 65 |testerr[|6] := te|
|00002f80| 73 74 65 72 72 5b 36 5d | 20 2b 20 28 4c 4f 47 4d |sterr[6]| + (LOGM|
|00002f90| 49 4e 20 2d 20 6c 6f 67 | 65 72 72 5b 6c 5d 29 3b |IN - log|err[l]);|
|00002fa0| 0d 20 20 20 74 65 73 74 | 65 72 72 5b 36 5d 20 3a |. test|err[6] :|
|00002fb0| 3d 20 74 65 73 74 65 72 | 72 5b 36 5d 2f 35 2e 30 |= tester|r[6]/5.0|
|00002fc0| 20 3b 0d 0d 44 72 61 77 | 41 74 28 35 2c 32 38 2c | ;..Draw|At(5,28,|
|00002fd0| 27 23 33 61 3a 20 6c 6e | 28 29 20 26 20 65 78 70 |'#3a: ln|() & exp|
|00002fe0| 28 29 20 20 20 20 20 20 | 20 27 29 3b 0d 20 20 20 |() | ');. |
|00002ff0| 66 2e 44 69 67 69 74 73 | 20 3a 3d 20 31 3b 0d 20 |f.Digits| := 1;. |
|00003000| 20 20 7a 20 3a 3d 20 32 | 36 3b 0d 20 20 20 66 6f | z := 2|6;. fo|
|00003010| 72 20 69 20 3a 3d 20 31 | 20 74 6f 20 35 20 64 6f |r i := 1| to 5 do|
|00003020| 20 0d 20 20 20 20 20 62 | 65 67 69 6e 0d 20 20 20 | . b|egin. |
|00003030| 20 20 20 20 7a 20 3a 3d | 20 7a 20 2b 20 35 3b 0d | z :=| z + 5;.|
|00003040| 20 20 20 20 20 20 20 4e | 75 6d 32 53 74 72 28 66 | N|um2Str(f|
|00003050| 2c 6c 6f 67 65 72 72 5b | 69 5d 2c 73 29 3b 0d 20 |,logerr[|i],s);. |
|00003060| 20 20 20 20 20 20 44 72 | 61 77 41 74 28 7a 2c 32 | Dr|awAt(z,2|
|00003070| 38 2c 73 29 3b 0d 20 20 | 20 20 20 65 6e 64 3b 0d |8,s);. | end;.|
|00003080| 20 20 20 66 2e 44 69 67 | 69 74 73 20 3a 3d 20 32 | f.Dig|its := 2|
|00003090| 3b 0d 20 20 20 4e 75 6d | 32 53 74 72 28 66 2c 74 |;. Num|2Str(f,t|
|000030a0| 65 73 74 65 72 72 5b 36 | 5d 2c 73 29 3b 0d 20 20 |esterr[6|],s);. |
|000030b0| 20 44 72 61 77 41 74 28 | 35 39 2c 32 38 2c 73 29 | DrawAt(|59,28,s)|
|000030c0| 3b 0d 0d 65 6e 64 3b 0d | 0d 0d 70 72 6f 63 65 64 |;..end;.|..proced|
|000030d0| 75 72 65 20 72 6f 6f 74 | 73 20 3b 20 20 7b 20 73 |ure root|s ; { s|
|000030e0| 71 72 74 28 29 20 61 6e | 64 20 73 71 72 28 29 20 |qrt() an|d sqr() |
|000030f0| 69 64 65 6e 74 69 74 69 | 65 73 20 7d 0d 76 61 72 |identiti|es }.var|
|00003100| 0d 20 20 20 69 2c 20 6a | 2c 20 6c 20 20 20 20 20 |. i, j|, l |
|00003110| 20 20 20 3a 20 69 6e 74 | 65 67 65 72 20 3b 0d 62 | : int|eger ;.b|
|00003120| 65 67 69 6e 0d 20 20 20 | 66 6f 72 20 6c 20 3a 3d |egin. |for l :=|
|00003130| 20 31 20 74 6f 20 35 20 | 64 6f 20 6c 6f 67 65 72 | 1 to 5 |do loger|
|00003140| 72 5b 6c 5d 20 3a 3d 20 | 30 2e 30 20 3b 0d 20 20 |r[l] := |0.0 ;. |
|00003150| 20 66 6f 72 20 6a 20 3a | 3d 20 31 20 74 6f 20 49 | for j :|= 1 to I|
|00003160| 54 45 52 20 64 6f 0d 20 | 20 20 20 20 20 62 65 67 |TER do. | beg|
|00003170| 69 6e 0d 20 20 20 20 20 | 20 66 6f 72 20 6c 20 3a |in. | for l :|
|00003180| 3d 20 31 20 74 6f 20 35 | 20 64 6f 20 74 68 5b 6c |= 1 to 5| do th[l|
|00003190| 5d 20 3a 3d 20 28 35 2a | 6a 2b 6c 2d 35 29 2a 53 |] := (5*|j+l-5)*S|
|000031a0| 54 45 50 20 3b 0d 20 20 | 20 20 20 20 66 6f 72 20 |TEP ;. | for |
|000031b0| 6c 20 3a 3d 20 31 20 74 | 6f 20 35 20 64 6f 20 76 |l := 1 t|o 5 do v|
|000031c0| 61 6c 5b 6c 5d 20 3a 3d | 20 73 71 72 74 28 74 68 |al[l] :=| sqrt(th|
|000031d0| 5b 6c 5d 29 20 3b 0d 20 | 20 20 20 20 20 66 6f 72 |[l]) ;. | for|
|000031e0| 20 6c 20 3a 3d 20 31 20 | 74 6f 20 35 20 64 6f 20 | l := 1 |to 5 do |
|000031f0| 66 75 6e 63 74 5b 6c 5d | 20 3a 3d 20 73 71 72 28 |funct[l]| := sqr(|
|00003200| 76 61 6c 5b 6c 5d 29 20 | 3b 0d 0d 20 20 20 66 6f |val[l]) |;.. fo|
|00003210| 72 20 6c 20 3a 3d 20 31 | 20 74 6f 20 35 20 64 6f |r l := 1| to 5 do|
|00003220| 0d 20 20 20 20 20 20 62 | 65 67 69 6e 0d 20 20 20 |. b|egin. |
|00003230| 20 20 20 65 72 72 5b 6c | 5d 20 3a 3d 20 61 62 73 | err[l|] := abs|
|00003240| 28 31 2e 30 20 2d 20 74 | 68 5b 6c 5d 2f 66 75 6e |(1.0 - t|h[l]/fun|
|00003250| 63 74 5b 6c 5d 29 20 3b | 0d 20 20 20 20 20 20 69 |ct[l]) ;|. i|
|00003260| 66 20 65 72 72 5b 6c 5d | 20 3e 20 4d 49 4e 45 52 |f err[l]| > MINER|
|00003270| 52 20 74 68 65 6e 20 6c | 6f 67 65 72 72 5b 6c 5d |R then l|ogerr[l]|
|00003280| 20 3a 3d 20 6c 6f 67 65 | 72 72 5b 6c 5d 20 2d 20 | := loge|rr[l] - |
|00003290| 6c 6e 28 65 72 72 5b 6c | 5d 29 20 2a 20 4c 4f 47 |ln(err[l|]) * LOG|
|000032a0| 31 30 45 0d 20 20 20 20 | 20 20 20 20 20 20 20 20 |10E. | |
|000032b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 65 6c 73 | | els|
|000032c0| 65 20 6c 6f 67 65 72 72 | 5b 6c 5d 20 3a 3d 20 6c |e logerr|[l] := l|
|000032d0| 6f 67 65 72 72 5b 6c 5d | 20 2b 20 4c 4f 47 4d 49 |ogerr[l]| + LOGMI|
|000032e0| 4e 3b 0d 20 20 20 20 20 | 20 65 6e 64 3b 0d 20 20 |N;. | end;. |
|000032f0| 20 65 6e 64 3b 0d 20 20 | 20 66 6f 72 20 6c 20 3a | end;. | for l :|
|00003300| 3d 20 31 20 74 6f 20 35 | 20 64 6f 20 6c 6f 67 65 |= 1 to 5| do loge|
|00003310| 72 72 5b 6c 5d 20 3a 3d | 20 6c 6f 67 65 72 72 5b |rr[l] :=| logerr[|
|00003320| 6c 5d 20 2f 20 49 54 45 | 52 20 3b 0d 20 20 20 66 |l] / ITE|R ;. f|
|00003330| 6f 72 20 6c 20 3a 3d 20 | 31 20 74 6f 20 35 20 64 |or l := |1 to 5 d|
|00003340| 6f 0d 20 20 20 20 20 20 | 74 65 73 74 65 72 72 5b |o. |testerr[|
|00003350| 37 5d 20 3a 3d 20 74 65 | 73 74 65 72 72 5b 37 5d |7] := te|sterr[7]|
|00003360| 20 2b 20 28 4c 4f 47 4d | 49 4e 20 2d 20 6c 6f 67 | + (LOGM|IN - log|
|00003370| 65 72 72 5b 6c 5d 29 20 | 3b 0d 20 20 20 74 65 73 |err[l]) |;. tes|
|00003380| 74 65 72 72 5b 37 5d 20 | 3a 3d 20 74 65 73 74 65 |terr[7] |:= teste|
|00003390| 72 72 5b 37 5d 2f 35 2e | 30 3b 0d 0d 44 72 61 77 |rr[7]/5.|0;..Draw|
|000033a0| 41 74 28 35 2c 32 39 2c | 27 23 33 62 3a 20 73 71 |At(5,29,|'#3b: sq|
|000033b0| 72 74 28 29 20 26 20 73 | 71 72 28 29 20 20 20 20 |rt() & s|qr() |
|000033c0| 20 20 27 29 3b 0d 20 20 | 20 66 2e 44 69 67 69 74 | ');. | f.Digit|
|000033d0| 73 20 3a 3d 20 31 3b 0d | 20 20 20 7a 20 3a 3d 20 |s := 1;.| z := |
|000033e0| 32 36 3b 0d 20 20 20 66 | 6f 72 20 69 20 3a 3d 20 |26;. f|or i := |
|000033f0| 31 20 74 6f 20 35 20 64 | 6f 20 0d 20 20 20 20 20 |1 to 5 d|o . |
|00003400| 62 65 67 69 6e 0d 20 20 | 20 20 20 20 20 7a 20 3a |begin. | z :|
|00003410| 3d 20 7a 20 2b 20 35 3b | 0d 20 20 20 20 20 20 20 |= z + 5;|. |
|00003420| 4e 75 6d 32 53 74 72 28 | 66 2c 6c 6f 67 65 72 72 |Num2Str(|f,logerr|
|00003430| 5b 69 5d 2c 73 29 3b 0d | 20 20 20 20 20 20 20 44 |[i],s);.| D|
|00003440| 72 61 77 41 74 28 7a 2c | 32 39 2c 73 29 3b 0d 20 |rawAt(z,|29,s);. |
|00003450| 20 20 20 20 65 6e 64 3b | 0d 20 20 20 66 2e 44 69 | end;|. f.Di|
|00003460| 67 69 74 73 20 3a 3d 20 | 32 3b 0d 20 20 20 4e 75 |gits := |2;. Nu|
|00003470| 6d 32 53 74 72 28 66 2c | 74 65 73 74 65 72 72 5b |m2Str(f,|testerr[|
|00003480| 37 5d 2c 73 29 3b 0d 20 | 20 20 44 72 61 77 41 74 |7],s);. | DrawAt|
|00003490| 28 35 39 2c 32 39 2c 73 | 29 3b 0d 0d 65 6e 64 3b |(59,29,s|);..end;|
|000034a0| 0d 0d 0d 70 72 6f 63 65 | 64 75 72 65 20 49 6e 69 |...proce|dure Ini|
|000034b0| 74 69 61 6c 69 7a 65 3b | 0d 7b 20 50 65 72 66 6f |tialize;|.{ Perfo|
|000034c0| 72 6d 20 6f 6e 65 2d 74 | 69 6d 65 20 73 65 74 75 |rm one-t|ime setu|
|000034d0| 70 20 77 6f 72 6b 2e 20 | 7d 0d 76 61 72 0d 20 20 |p work. |}.var. |
|000034e0| 72 3a 20 52 65 63 74 3b | 0d 20 20 4d 79 4e 65 77 |r: Rect;|. MyNew|
|000034f0| 57 69 6e 64 6f 77 3a 20 | 57 69 6e 64 6f 77 50 74 |Window: |WindowPt|
|00003500| 72 3b 0d 62 65 67 69 6e | 0d 20 20 49 6e 69 74 47 |r;.begin|. InitG|
|00003510| 72 61 66 28 40 74 68 65 | 50 6f 72 74 29 3b 20 20 |raf(@the|Port); |
|00003520| 20 20 20 20 20 20 20 20 | 20 7b 20 69 6e 69 74 69 | | { initi|
|00003530| 61 6c 69 7a 65 20 51 75 | 69 63 6b 44 72 61 77 20 |alize Qu|ickDraw |
|00003540| 7d 0d 20 20 49 6e 69 74 | 46 6f 6e 74 73 3b 20 20 |}. Init|Fonts; |
|00003550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003560| 20 20 7b 20 20 20 20 20 | 22 20 20 20 20 20 20 46 | { |" F|
|00003570| 6f 6e 74 20 4d 61 6e 61 | 67 65 72 20 7d 0d 20 20 |ont Mana|ger }. |
|00003580| 49 6e 69 74 57 69 6e 64 | 6f 77 73 3b 20 20 20 20 |InitWind|ows; |
|00003590| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 7b 20 | | { |
|000035a0| 20 20 20 20 22 20 20 20 | 20 20 20 57 69 6e 64 6f | " | Windo|
|000035b0| 77 20 4d 61 6e 61 67 65 | 72 20 7d 20 20 20 20 20 |w Manage|r } |
|000035c0| 20 20 20 20 20 20 20 20 | 0d 20 20 49 6e 69 74 43 | |. InitC|
|000035d0| 75 72 73 6f 72 3b 20 20 | 20 20 20 20 20 20 20 20 |ursor; | |
|000035e0| 20 20 20 20 20 20 20 20 | 20 7b 20 6d 61 6b 65 20 | | { make |
|000035f0| 63 75 72 73 6f 72 20 61 | 6e 20 61 72 72 6f 77 20 |cursor a|n arrow |
|00003600| 7d 0d 20 20 64 6f 6e 65 | 20 3a 3d 20 46 61 6c 73 |}. done| := Fals|
|00003610| 65 3b 0d 20 20 53 65 74 | 52 65 63 74 28 72 2c 33 |e;. Set|Rect(r,3|
|00003620| 30 2c 36 30 2c 36 30 30 | 2c 34 30 30 29 3b 0d 20 |0,60,600|,400);. |
|00003630| 20 4d 79 4e 65 77 57 69 | 6e 64 6f 77 3a 3d 4e 65 | MyNewWi|ndow:=Ne|
|00003640| 77 57 69 6e 64 6f 77 28 | 6e 69 6c 2c 72 2c 27 41 |wWindow(|nil,r,'A|
|00003650| 63 63 75 72 61 63 79 20 | 54 65 73 74 65 72 27 2c |ccuracy |Tester',|
|00003660| 54 72 75 65 2c 64 6f 63 | 75 6d 65 6e 74 50 72 6f |True,doc|umentPro|
|00003670| 63 2c 50 6f 69 6e 74 65 | 72 28 2d 31 29 2c 54 72 |c,Pointe|r(-1),Tr|
|00003680| 75 65 2c 30 29 3b 0d 20 | 20 4d 79 4e 65 77 57 69 |ue,0);. | MyNewWi|
|00003690| 6e 64 6f 77 5e 2e 74 78 | 46 61 63 65 20 3a 3d 20 |ndow^.tx|Face := |
|000036a0| 5b 62 6f 6c 64 5d 3b 20 | 4d 79 4e 65 77 57 69 6e |[bold]; |MyNewWin|
|000036b0| 64 6f 77 5e 2e 74 78 46 | 6f 6e 74 20 3a 3d 20 53 |dow^.txF|ont := S|
|000036c0| 79 73 74 65 6d 46 6f 6e | 74 3b 0d 20 20 77 69 6e |ystemFon|t;. win|
|000036d0| 64 6f 77 50 65 65 6b 28 | 4d 79 4e 65 77 57 69 6e |dowPeek(|MyNewWin|
|000036e0| 64 6f 77 29 5e 2e 72 65 | 66 43 6f 6e 20 3a 3d 20 |dow)^.re|fCon := |
|000036f0| 4c 6f 6e 67 69 6e 74 28 | 4e 65 77 53 74 72 69 6e |Longint(|NewStrin|
|00003700| 67 28 27 43 6f 6e 74 65 | 6e 74 73 20 6f 66 20 77 |g('Conte|nts of w|
|00003710| 69 6e 64 6f 77 20 31 27 | 29 29 3b 0d 20 20 0d 20 |indow 1'|));. . |
|00003720| 65 6e 64 3b 0d 20 0d 20 | 70 72 6f 63 65 64 75 72 |end;. . |procedur|
|00003730| 65 20 48 65 61 64 65 72 | 20 3b 0d 62 65 67 69 6e |e Header| ;.begin|
|00003740| 0d 20 20 20 4e 65 77 46 | 6f 6e 74 20 28 20 6d 6f |. NewF|ont ( mo|
|00003750| 6e 61 63 6f 2c 20 39 20 | 29 3b 0d 20 20 20 54 65 |naco, 9 |);. Te|
|00003760| 78 74 46 61 63 65 28 20 | 5b 5d 20 29 3b 0d 20 20 |xtFace( |[] );. |
|00003770| 20 44 72 61 77 41 74 28 | 35 2c 36 2c 27 41 43 43 | DrawAt(|5,6,'ACC|
|00003780| 55 52 41 43 59 3a 20 65 | 78 74 65 6e 64 65 64 20 |URACY: e|xtended |
|00003790| 74 65 73 74 65 72 3a 20 | 27 20 2b 20 43 4f 4d 50 |tester: |' + COMP|
|000037a0| 49 4c 20 2b 20 27 3b 20 | 27 20 2b 20 4d 41 43 48 |IL + '; |' + MACH|
|000037b0| 49 4e 29 20 3b 0d 20 20 | 20 44 72 61 77 41 74 28 |IN) ;. | DrawAt(|
|000037c0| 35 2c 37 2c 27 20 20 56 | 20 31 2e 37 20 28 63 29 |5,7,' V| 1.7 (c)|
|000037d0| 20 31 39 38 37 2c 20 50 | 43 20 54 65 63 68 20 4a | 1987, P|C Tech J|
|000037e0| 6f 75 72 6e 61 6c 20 61 | 6e 64 20 5a 69 66 66 20 |ournal a|nd Ziff |
|000037f0| 43 6f 6d 6d 75 6e 69 63 | 61 74 69 6f 6e 73 20 43 |Communic|ations C|
|00003800| 6f 2e 27 29 3b 0d 20 20 | 20 44 72 61 77 41 74 28 |o.');. | DrawAt(|
|00003810| 35 2c 38 2c 27 20 20 20 | 20 20 20 20 20 20 20 20 |5,8,' | |
|00003820| 20 20 20 20 20 20 20 77 | 72 69 74 74 65 6e 20 62 | w|ritten b|
|00003830| 79 20 4a 69 6d 20 52 6f | 62 65 72 74 73 2e 27 29 |y Jim Ro|berts.')|
|00003840| 3b 0d 20 20 20 44 72 61 | 77 41 74 28 35 2c 39 2c |;. Dra|wAt(5,9,|
|00003850| 27 20 20 20 20 4d 6f 64 | 69 66 69 65 64 20 66 6f |' Mod|ified fo|
|00003860| 72 20 4d 61 63 69 6e 74 | 6f 73 68 20 26 20 54 75 |r Macint|osh & Tu|
|00003870| 72 62 6f 20 50 61 73 63 | 61 6c 20 62 79 20 4d 6f |rbo Pasc|al by Mo|
|00003880| 72 72 79 20 48 6f 64 67 | 65 73 2c 20 43 49 53 20 |rry Hodg|es, CIS |
|00003890| 37 34 37 36 36 2c 33 34 | 32 36 27 29 3b 0d 20 20 |74766,34|26');. |
|000038a0| 20 44 72 61 77 41 74 28 | 35 2c 31 30 2c 27 54 65 | DrawAt(|5,10,'Te|
|000038b0| 73 74 20 31 20 63 68 65 | 63 6b 73 20 6d 75 6c 74 |st 1 che|cks mult|
|000038c0| 69 70 6c 69 63 61 74 69 | 6f 6e 20 61 6e 64 20 61 |iplicati|on and a|
|000038d0| 64 64 69 74 69 6f 6e 2c | 20 74 68 65 6e 20 64 69 |ddition,| then di|
|000038e0| 76 69 73 69 6f 6e 20 61 | 6e 64 20 73 75 62 74 72 |vision a|nd subtr|
|000038f0| 61 63 74 69 6f 6e 2e 27 | 29 3b 0d 20 20 20 44 72 |action.'|);. Dr|
|00003900| 61 77 41 74 28 35 2c 31 | 31 2c 27 54 65 73 74 20 |awAt(5,1|1,'Test |
|00003910| 32 20 6d 65 61 73 75 72 | 65 73 20 74 68 65 20 61 |2 measur|es the a|
|00003920| 63 63 75 72 61 63 79 20 | 6f 66 20 74 68 65 20 54 |ccuracy |of the T|
|00003930| 75 72 62 6f 20 74 72 69 | 67 20 66 75 6e 63 74 69 |urbo tri|g functi|
|00003940| 6f 6e 73 20 28 74 68 65 | 72 65 20 69 73 20 6e 6f |ons (the|re is no|
|00003950| 20 74 61 6e 28 29 29 2e | 27 29 3b 0d 20 20 20 44 | tan()).|');. D|
|00003960| 72 61 77 41 74 28 35 2c | 31 32 2c 27 54 65 73 74 |rawAt(5,|12,'Test|
|00003970| 20 33 20 66 69 6e 64 73 | 20 74 68 65 20 74 72 75 | 3 finds| the tru|
|00003980| 6e 63 61 74 69 6f 6e 20 | 65 72 72 6f 72 20 69 6e |ncation |error in|
|00003990| 20 73 6f 6d 65 20 65 78 | 70 6f 6e 65 6e 74 69 61 | some ex|ponentia|
|000039a0| 6c 20 61 6e 64 20 73 71 | 72 74 20 69 64 65 6e 74 |l and sq|rt ident|
|000039b0| 69 74 69 65 73 2e 27 29 | 3b 0d 20 20 20 44 72 61 |ities.')|;. Dra|
|000039c0| 77 41 74 28 35 2c 31 33 | 2c 27 41 43 43 55 52 41 |wAt(5,13|,'ACCURA|
|000039d0| 43 59 20 69 73 20 74 68 | 65 20 72 6f 75 6e 64 65 |CY is th|e rounde|
|000039e0| 64 20 6e 65 67 61 74 69 | 76 65 20 6c 6f 67 20 6f |d negati|ve log o|
|000039f0| 66 20 65 72 72 6f 72 2e | 20 20 50 72 6f 67 72 61 |f error.| Progra|
|00003a00| 6d 20 6d 61 79 20 65 78 | 69 74 20 61 62 6e 6f 72 |m may ex|it abnor|
|00003a10| 6d 61 6c 6c 79 2e 27 29 | 3b 0d 20 20 20 44 72 61 |mally.')|;. Dra|
|00003a20| 77 41 74 28 35 2c 31 34 | 2c 27 4e 4f 54 45 3a 20 |wAt(5,14|,'NOTE: |
|00003a30| 61 6e 20 69 6e 63 72 65 | 61 73 65 20 6f 66 20 31 |an incre|ase of 1|
|00003a40| 20 69 6e 20 74 68 65 20 | 72 61 74 69 6e 67 20 6d | in the |rating m|
|00003a50| 65 61 6e 73 20 61 20 66 | 61 63 74 6f 72 20 6f 66 |eans a f|actor of|
|00003a60| 20 54 45 4e 20 6c 65 73 | 73 20 61 63 63 75 72 61 | TEN les|s accura|
|00003a70| 74 65 2e 27 29 3b 0d 20 | 20 20 44 72 61 77 41 74 |te.');. | DrawAt|
|00003a80| 28 35 2c 31 36 2c 27 49 | 6e 74 65 72 70 72 65 74 |(5,16,'I|nterpret|
|00003a90| 61 74 69 6f 6e 20 20 3c | 30 2e 30 20 2d 20 30 2e |ation <|0.0 - 0.|
|00003aa0| 35 20 3d 3e 20 45 78 63 | 65 6c 6c 65 6e 74 20 20 |5 => Exc|ellent |
|00003ab0| 20 20 20 31 2e 30 20 2d | 20 31 2e 35 20 3d 3e 20 | 1.0 -| 1.5 => |
|00003ac0| 46 61 69 72 27 29 3b 0d | 20 20 20 44 72 61 77 41 |Fair');.| DrawA|
|00003ad0| 74 28 35 2c 31 37 2c 27 | 20 20 6f 66 20 52 41 54 |t(5,17,'| of RAT|
|00003ae0| 49 4e 47 3a 20 20 20 20 | 20 30 2e 35 20 2d 20 31 |ING: | 0.5 - 1|
|00003af0| 2e 30 20 3d 3e 20 47 6f | 6f 64 20 20 20 20 20 20 |.0 => Go|od |
|00003b00| 20 20 20 20 31 2e 35 20 | 3c 20 20 20 20 20 3d 3e | 1.5 |< =>|
|00003b10| 20 50 6f 6f 72 27 29 3b | 0d 20 20 20 44 72 61 77 | Poor');|. Draw|
|00003b20| 41 74 28 35 2c 31 38 2c | 27 27 29 20 3b 0d 20 20 |At(5,18,|'') ;. |
|00003b30| 20 44 72 61 77 41 74 28 | 35 2c 31 39 2c 27 20 20 | DrawAt(|5,19,' |
|00003b40| 20 20 20 20 54 45 53 54 | 53 20 20 20 20 20 20 20 | TEST|S |
|00003b50| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003b60| 41 43 43 55 52 41 43 59 | 20 20 20 20 20 20 20 20 |ACCURACY| |
|00003b70| 20 20 20 52 41 54 49 4e | 47 20 27 29 3b 0d 65 6e | RATIN|G ');.en|
|00003b80| 64 3b 0d 0d 62 65 67 69 | 6e 20 20 7b 20 70 72 6f |d;..begi|n { pro|
|00003b90| 67 72 61 6d 20 41 43 43 | 55 52 41 43 59 20 62 65 |gram ACC|URACY be|
|00003ba0| 67 69 6e 73 20 68 65 72 | 65 20 7d 0d 20 20 52 65 |gins her|e }. Re|
|00003bb0| 70 65 61 74 0d 20 20 20 | 49 6e 69 74 69 61 6c 69 |peat. |Initiali|
|00003bc0| 7a 65 3b 0d 20 20 20 48 | 65 61 64 65 72 20 3b 0d |ze;. H|eader ;.|
|00003bd0| 20 20 20 66 6f 72 20 69 | 20 3a 3d 20 31 20 74 6f | for i| := 1 to|
|00003be0| 20 20 31 30 20 64 6f 20 | 74 65 73 74 65 72 72 5b | 10 do |testerr[|
|00003bf0| 69 5d 20 3a 3d 20 30 2e | 30 20 3b 0d 20 20 20 61 |i] := 0.|0 ;. a|
|00003c00| 72 69 74 68 20 3b 0d 20 | 20 20 74 72 69 67 20 3b |rith ;. | trig ;|
|00003c10| 0d 20 20 20 74 72 61 6e | 73 63 20 3b 0d 20 20 20 |. tran|sc ;. |
|00003c20| 72 6f 6f 74 73 20 3b 0d | 20 20 20 6e 74 65 73 74 |roots ;.| ntest|
|00003c30| 20 3a 3d 20 37 20 3b 0d | 20 20 20 74 6f 74 65 72 | := 7 ;.| toter|
|00003c40| 72 20 3a 3d 20 30 2e 30 | 3b 0d 20 20 20 66 6f 72 |r := 0.0|;. for|
|00003c50| 20 69 20 3a 3d 20 31 20 | 74 6f 20 6e 74 65 73 74 | i := 1 |to ntest|
|00003c60| 20 64 6f 20 74 6f 74 65 | 72 72 20 3a 3d 20 74 6f | do tote|rr := to|
|00003c70| 74 65 72 72 20 2b 20 74 | 65 73 74 65 72 72 5b 69 |terr + t|esterr[i|
|00003c80| 5d 20 3b 0d 20 20 20 74 | 6f 74 65 72 72 20 3a 3d |] ;. t|oterr :=|
|00003c90| 20 74 6f 74 65 72 72 2f | 6e 74 65 73 74 20 3b 0d | toterr/|ntest ;.|
|00003ca0| 20 20 20 44 72 61 77 41 | 74 28 35 2c 33 31 2c 27 | DrawA|t(5,31,'|
|00003cb0| 4f 76 65 72 61 6c 6c 20 | 72 61 74 69 6e 67 3a 27 |Overall |rating:'|
|00003cc0| 29 3b 0d 20 20 20 4e 75 | 6d 32 53 74 72 28 66 2c |);. Nu|m2Str(f,|
|00003cd0| 74 6f 74 65 72 72 2c 73 | 29 3b 0d 20 20 20 44 72 |toterr,s|);. Dr|
|00003ce0| 61 77 41 74 28 32 33 2c | 33 31 2c 73 29 3b 0d 20 |awAt(23,|31,s);. |
|00003cf0| 20 20 44 72 61 77 41 74 | 28 35 2c 33 33 2c 27 43 | DrawAt|(5,33,'C|
|00003d00| 6c 69 63 6b 20 6d 6f 75 | 73 65 20 74 6f 20 66 69 |lick mou|se to fi|
|00003d10| 6e 69 73 68 27 29 3b 0d | 20 20 20 50 61 75 73 65 |nish');.| Pause|
|00003d20| 3b 0d 09 20 20 75 6e 74 | 69 6c 20 42 75 74 74 6f |;.. unt|il Butto|
|00003d30| 6e 3b 0d 45 4e 44 2e 0d | 0d 0d 00 00 00 00 00 00 |n;.END..|........|
|00003d40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003d80| 00 00 01 00 00 00 01 52 | 00 00 00 52 00 00 00 46 |.......R|...R...F|
|00003d90| 80 00 00 10 ff ff ff f0 | 00 00 00 00 ff ff ff fe |........|........|
|00003da0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff fe |........|........|
|00003db0| 0c 41 63 63 75 72 61 63 | 79 2e 70 61 73 63 02 00 |.Accurac|y.pasc..|
|00003dc0| 00 00 54 45 58 54 54 50 | 41 53 01 08 00 44 00 71 |..TEXTTP|AS...D.q|
|00003dd0| 00 00 54 45 58 54 54 50 | 41 53 01 08 00 44 00 71 |..TEXTTP|AS...D.q|
|00003de0| 00 00 00 84 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003df0| 00 00 9e 68 36 a6 00 00 | 3c ba 00 00 01 98 ff f0 |...h6...|<.......|
|00003e00| ff ff ff f0 ff ff ff f0 | ff ff ff f0 ff ff ff f0 |........|........|
|00003e10| ff ff ff f0 ff ff ff f0 | 00 00 01 00 08 00 40 00 |........|......@.|
|00003e20| 14 00 a0 00 22 01 10 00 | 41 01 10 00 80 81 10 00 |...."...|A.......|
|00003e30| 50 42 18 00 22 22 08 00 | 14 13 f8 00 08 08 43 f0 |PB..""..|......C.|
|00003e40| 05 04 1c ff 02 22 31 0e | 01 40 c4 30 00 81 10 40 |....."1.|.@.0...@|
|00003e50| 00 42 21 80 00 24 42 00 | 00 08 84 00 00 11 08 00 |.B!..$B.|........|
|00003e60| 00 12 10 00 3c 14 22 00 | 42 15 e1 00 ff d8 40 80 |....<.".|B.....@.|
|00003e70| 80 0f 84 40 80 08 28 20 | 80 18 90 10 80 10 8a 08 |...@..( |........|
|00003e80| 00 00 00 02 02 d0 00 00 | 00 48 00 09 4d 6f 6e 61 |........|.H..Mona|
|00003e90| 63 6f 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |co......|........|
|00003ea0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 06 00 04 |........|........|
|00003eb0| 00 50 00 20 01 dd 02 7d | 00 50 00 20 01 dd 02 7d |.P. ...}|.P. ...}|
|00003ec0| 9e bd f8 0e 00 00 37 c5 | 00 00 38 1d 00 00 35 af |......7.|..8...5.|
|00003ed0| 01 00 00 00 01 00 00 00 | 01 52 00 00 00 52 00 00 |........|.R...R..|
|00003ee0| 00 46 00 03 be 48 02 f2 | 00 00 00 1c 00 46 00 01 |.F...H..|.....F..|
|00003ef0| 45 51 45 44 00 00 00 12 | 4d 50 53 52 00 00 00 1e |EQED....|MPSR....|
|00003f00| 03 eb ff ff 00 00 00 00 | 00 00 00 00 03 ed ff ff |........|........|
|00003f10| 00 00 00 06 00 04 c1 38 | 00 00 00 00 00 00 00 00 |.......8|........|
|00003f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00003f70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+